€• Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ"/translations/zh_CN/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/zh_TW/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/pt_BR/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/sp_SP/driver-api/hsi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ-High Speed Synchronous Serial Interface (HSI)”h]”hŒ-High Speed Synchronous Serial Interface (HSI)”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ| | | T|------------ CADATA ------------>|R | | X|------------ CAFLAG ------------>|X | | |<----------- ACREADY ------------| | | | | | | | | | | |< - - - - - ACWAKE - - - - - - -| | | R|<----------- ACDATA -------------|T | | X|<----------- ACFLAG -------------|X | | |------------ CAREADY ----------->| | | | | | | | | | +------------+ +---------------+”h]”hX+------------+ +---------------+ | Cellular | | Application | | Die | | Die | | | - - - - - - CAWAKE - - - - - - >| | | T|------------ CADATA ------------>|R | | X|------------ CAFLAG ------------>|X | | |<----------- ACREADY ------------| | | | | | | | | | | |< - - - - - ACWAKE - - - - - - -| | | R|<----------- ACDATA -------------|T | | X|<----------- ACFLAG -------------|X | | |------------ CAREADY ----------->| | | | | | | | | | +------------+ +---------------+”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jh³hÊh´KhhËh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒHSI Subsystem in Linux”h]”hŒHSI Subsystem in Linux”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj"h²hh³hÊh´K)ubhÝ)�”}”(hŒåIn the Linux kernel the hsi subsystem is supposed to be used for HSI devices. The hsi subsystem contains drivers for hsi controllers including support for multi-port controllers and provides a generic API for using the HSI ports.”h]”hŒåIn the Linux kernel the hsi subsystem is supposed to be used for HSI devices. The hsi subsystem contains drivers for hsi controllers including support for multi-port controllers and provides a generic API for using the HSI ports.”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K+hj"h²hubhÝ)�”}”(hŒ·It also contains HSI client drivers, which make use of the generic API to implement a protocol used on the HSI interface. These client drivers can use an arbitrary number of channels.”h]”hŒ·It also contains HSI client drivers, which make use of the generic API to implement a protocol used on the HSI interface. These client drivers can use an arbitrary number of channels.”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K/hj"h²hubeh}”(h]”Œhsi-subsystem-in-linux”ah ]”h"]”Œhsi subsystem in linux”ah$]”h&]”uh1hµhh·h²hh³hÊh´K)ubh¶)�”}”(hhh]”(h»)�”}”(hŒhsi-char Device”h]”hŒhsi-char Device”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjWh²hh³hÊh´K4ubhÝ)�”}”(hXEach port automatically registers a generic client driver called hsi_char, which provides a character device for userspace representing the HSI port. It can be used to communicate via HSI from userspace. Userspace may configure the hsi_char device using the following ioctl commands:”h]”hXEach port automatically registers a generic client driver called hsi_char, which provides a character device for userspace representing the HSI port. It can be used to communicate via HSI from userspace. Userspace may configure the hsi_char device using the following ioctl commands:”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K6hjWh²hubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒHSC_RESET flush the HSI port ”h]”(hŒterm”“”)�”}”(hŒ HSC_RESET”h]”hŒ HSC_RESET”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÊh´KhjŠubj )�”}”(hŒJstruct hsi_channel { unsigned int id; const char *name; };”h]”hŒJstruct hsi_channel { unsigned int id; const char *name; };”…”�”}”hj­sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K@hjŠubhÝ)�”}”(hŒ **Members**”h]”j“)�”}”(hj¾h]”hŒMembers”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KEhjŠubjw)�”}”(hhh]”(j|)�”}”(hŒ``id`` Channel number ”h]”(j‚)�”}”(hŒ``id``”h]”hŒliteral”“”)�”}”(hjÝh]”hŒid”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kh]”hŒ{unnamed_union}”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Khj8ubj’)�”}”(hhh]”hÝ)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jSh´KhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jSh´Khjubj|)�”}”(hŒ1``flow`` RX flow type (SYNCHRONIZED or PIPELINE) ”h]”(j‚)�”}”(hŒ``flow``”h]”jà)�”}”(hjwh]”hŒflow”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KKhjqubj’)�”}”(hhh]”hÝ)�”}”(hŒ'RX flow type (SYNCHRONIZED or PIPELINE)”h]”hŒ'RX flow type (SYNCHRONIZED or PIPELINE)”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŒh´KKhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jŒh´KKhjubj|)�”}”(hŒB``arb_mode`` Arbitration mode for TX frame (Round robin, priority)”h]”(j‚)�”}”(hŒ ``arb_mode``”h]”jà)�”}”(hj°h]”hŒarb_mode”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KKhjªubj’)�”}”(hhh]”hÝ)�”}”(hŒ5Arbitration mode for TX frame (Round robin, priority)”h]”hŒ5Arbitration mode for TX frame (Round robin, priority)”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KLhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jÅh´KKhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjÐubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_board_info (C struct)”Œc.hsi_board_info”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒhsi_board_info”h]”j)�”}”(hŒstruct hsi_board_info”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KRubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjh²hh³jh´KRubj/)�”}”(hŒhsi_board_info”h]”j5)�”}”(hjh]”hŒhsi_board_info”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj&ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjh²hh³jh´KRubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjh²hh³jh´KRubah}”(h]”jýah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jh´KRhjÿh²hubja)�”}”(hhh]”hÝ)�”}”(hŒHSI client board info”h]”hŒHSI client board info”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KZhjIh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÿh²hh³jh´KRubeh}”(h]”h ]”(j}Œstruct”eh"]”h$]”h&]”j‚j}jƒjdj„jdj…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hXz**Definition**:: struct hsi_board_info { const char *name; unsigned int hsi_id; unsigned int port; struct hsi_config tx_cfg; struct hsi_config rx_cfg; void *platform_data; struct dev_archdata *archdata; }; **Members** ``name`` Name for the HSI device ``hsi_id`` HSI controller id where the client sits ``port`` Port number in the controller where the client sits ``tx_cfg`` HSI TX configuration ``rx_cfg`` HSI RX configuration ``platform_data`` Platform related data ``archdata`` Architecture-dependent device data”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(j“)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjlubhŒ:”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K^hjhubj )�”}”(hX struct hsi_board_info { const char *name; unsigned int hsi_id; unsigned int port; struct hsi_config tx_cfg; struct hsi_config rx_cfg; void *platform_data; struct dev_archdata *archdata; };”h]”hX struct hsi_board_info { const char *name; unsigned int hsi_id; unsigned int port; struct hsi_config tx_cfg; struct hsi_config rx_cfg; void *platform_data; struct dev_archdata *archdata; };”…”�”}”hj‰sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K`hjhubhÝ)�”}”(hŒ **Members**”h]”j“)�”}”(hjšh]”hŒMembers”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kjhjhubjw)�”}”(hhh]”(j|)�”}”(hŒ!``name`` Name for the HSI device ”h]”(j‚)�”}”(hŒ``name``”h]”jà)�”}”(hj¹h]”hŒname”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K\hj³ubj’)�”}”(hhh]”hÝ)�”}”(hŒName for the HSI device”h]”hŒName for the HSI device”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÎh´K\hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jÎh´K\hj°ubj|)�”}”(hŒ3``hsi_id`` HSI controller id where the client sits ”h]”(j‚)�”}”(hŒ ``hsi_id``”h]”jà)�”}”(hjòh]”hŒhsi_id”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K]hjìubj’)�”}”(hhh]”hÝ)�”}”(hŒ'HSI controller id where the client sits”h]”hŒ'HSI controller id where the client sits”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´K]hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jh´K]hj°ubj|)�”}”(hŒ=``port`` Port number in the controller where the client sits ”h]”(j‚)�”}”(hŒ``port``”h]”jà)�”}”(hj+h]”hŒport”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K^hj%ubj’)�”}”(hhh]”hÝ)�”}”(hŒ3Port number in the controller where the client sits”h]”hŒ3Port number in the controller where the client sits”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j@h´K^hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j@h´K^hj°ubj|)�”}”(hŒ ``tx_cfg`` HSI TX configuration ”h]”(j‚)�”}”(hŒ ``tx_cfg``”h]”jà)�”}”(hjdh]”hŒtx_cfg”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K_hj^ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI TX configuration”h]”hŒHSI TX configuration”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jyh´K_hjzubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jyh´K_hj°ubj|)�”}”(hŒ ``rx_cfg`` HSI RX configuration ”h]”(j‚)�”}”(hŒ ``rx_cfg``”h]”jà)�”}”(hj�h]”hŒrx_cfg”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K`hj—ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI RX configuration”h]”hŒHSI RX configuration”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j²h´K`hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j²h´K`hj°ubj|)�”}”(hŒ(``platform_data`` Platform related data ”h]”(j‚)�”}”(hŒ``platform_data``”h]”jà)�”}”(hjÖh]”hŒ platform_data”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KahjÐubj’)�”}”(hhh]”hÝ)�”}”(hŒPlatform related data”h]”hŒPlatform related data”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jëh´Kahjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jëh´Kahj°ubj|)�”}”(hŒ/``archdata`` Architecture-dependent device data”h]”(j‚)�”}”(hŒ ``archdata``”h]”jà)�”}”(hj h]”hŒarchdata”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kahj ubj’)�”}”(hhh]”hÝ)�”}”(hŒ"Architecture-dependent device data”h]”hŒ"Architecture-dependent device data”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kbhj% ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j$ h´Kahj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjhubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_client (C struct)”Œ c.hsi_client”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ hsi_client”h]”j)�”}”(hŒstruct hsi_client”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hje h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Khubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhje h²hh³jv h´Khubj/)�”}”(hŒ hsi_client”h]”j5)�”}”(hjc h]”hŒ hsi_client”…”�”}”(hj‰ h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj… ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hje h²hh³jv h´Khubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThja h²hh³jv h´Khubah}”(h]”j\ ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jv h´Khhj^ h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ"HSI client attached to an HSI port”h]”hŒ"HSI client attached to an HSI port”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kyhj¨ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj^ h²hh³jv h´Khubeh}”(h]”h ]”(j}Œstruct”eh"]”h$]”h&]”j‚j}jƒjà j„jà j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hX)**Definition**:: struct hsi_client { struct device device; struct hsi_config tx_cfg; struct hsi_config rx_cfg; }; **Members** ``device`` Driver model representation of the device ``tx_cfg`` HSI TX configuration ``rx_cfg`` HSI RX configuration”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(j“)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjË ubhŒ:”…”�”}”(hjË h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K}hjÇ ubj )�”}”(hŒ‚struct hsi_client { struct device device; struct hsi_config tx_cfg; struct hsi_config rx_cfg; };”h]”hŒ‚struct hsi_client { struct device device; struct hsi_config tx_cfg; struct hsi_config rx_cfg; };”…”�”}”hjè sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KhjÇ ubhÝ)�”}”(hŒ **Members**”h]”j“)�”}”(hjù h]”hŒMembers”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj÷ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K…hjÇ ubjw)�”}”(hhh]”(j|)�”}”(hŒ5``device`` Driver model representation of the device ”h]”(j‚)�”}”(hŒ ``device``”h]”jà)�”}”(hj h]”hŒdevice”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K{hj ubj’)�”}”(hhh]”hÝ)�”}”(hŒ)Driver model representation of the device”h]”hŒ)Driver model representation of the device”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j- h´K{hj. ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j- h´K{hj ubj|)�”}”(hŒ ``tx_cfg`` HSI TX configuration ”h]”(j‚)�”}”(hŒ ``tx_cfg``”h]”jà)�”}”(hjQ h]”hŒtx_cfg”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K|hjK ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI TX configuration”h]”hŒHSI TX configuration”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jf h´K|hjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjK ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jf h´K|hj ubj|)�”}”(hŒ``rx_cfg`` HSI RX configuration”h]”(j‚)�”}”(hŒ ``rx_cfg``”h]”jà)�”}”(hjŠ h]”hŒrx_cfg”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K|hj„ ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI RX configuration”h]”hŒHSI RX configuration”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K}hj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj„ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jŸ h´K|hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjÇ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_client_driver (C struct)”Œc.hsi_client_driver”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒhsi_client_driver”h]”j)�”}”(hŒstruct hsi_client_driver”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjà h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kƒubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjà h²hh³jñ h´Kƒubj/)�”}”(hŒhsi_client_driver”h]”j5)�”}”(hjÞ h]”hŒhsi_client_driver”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjà h²hh³jñ h´Kƒubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjÜ h²hh³jñ h´Kƒubah}”(h]”j× ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jñ h´KƒhjÙ h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ"Driver associated to an HSI client”h]”hŒ"Driver associated to an HSI client”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K™hj# h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÙ h²hh³jñ h´Kƒubeh}”(h]”h ]”(j}Œstruct”eh"]”h$]”h&]”j‚j}jƒj> j„j> j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒž**Definition**:: struct hsi_client_driver { struct device_driver driver; }; **Members** ``driver`` Driver model representation of the driver”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(j“)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjF ubhŒ:”…”�”}”(hjF h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K�hjB ubj )�”}”(hŒAstruct hsi_client_driver { struct device_driver driver; };”h]”hŒAstruct hsi_client_driver { struct device_driver driver; };”…”�”}”hjc sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KŸhjB ubhÝ)�”}”(hŒ **Members**”h]”j“)�”}”(hjt h]”hŒMembers”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K£hjB ubjw)�”}”(hhh]”j|)�”}”(hŒ4``driver`` Driver model representation of the driver”h]”(j‚)�”}”(hŒ ``driver``”h]”jà)�”}”(hj“ h]”hŒdriver”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kšhj� ubj’)�”}”(hhh]”hÝ)�”}”(hŒ)Driver model representation of the driver”h]”hŒ)Driver model representation of the driver”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K›hj© ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j¨ h´KšhjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhjB ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_msg (C struct)”Œ c.hsi_msg”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒhsi_msg”h]”j)�”}”(hŒstruct hsi_msg”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjé h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K¡ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjé h²hh³jú h´K¡ubj/)�”}”(hŒhsi_msg”h]”j5)�”}”(hjç h]”hŒhsi_msg”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjé h²hh³jú h´K¡ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjå h²hh³jú h´K¡ubah}”(h]”jà ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jú h´K¡hjâ h²hubja)�”}”(hhh]”hÝ)�”}”(hŒHSI message descriptor”h]”hŒHSI message descriptor”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K«hj, h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjâ h²hh³jú h´K¡ubeh}”(h]”h ]”(j}Œstruct”eh"]”h$]”h&]”j‚j}jƒjG j„jG j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hXM**Definition**:: struct hsi_msg { struct list_head link; struct hsi_client *cl; struct sg_table sgt; void *context; void (*complete)(struct hsi_msg *msg); void (*destructor)(struct hsi_msg *msg); int status; unsigned int actual_len; unsigned int channel; unsigned int ttype:1; unsigned int break_frame:1; }; **Members** ``link`` Free to use by the current descriptor owner ``cl`` HSI device client that issues the transfer ``sgt`` Head of the scatterlist array ``context`` Client context data associated to the transfer ``complete`` Transfer completion callback ``destructor`` Destructor to free resources when flushing ``status`` Status of the transfer when completed ``actual_len`` Actual length of data transferred on completion ``channel`` Channel were to TX/RX the message ``ttype`` Transfer type (TX if set, RX otherwise) ``break_frame`` if true HSI will send/receive a break frame. Data buffers are ignored in the request.”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(j“)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjO ubhŒ:”…”�”}”(hjO h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K¯hjK ubj )�”}”(hX�struct hsi_msg { struct list_head link; struct hsi_client *cl; struct sg_table sgt; void *context; void (*complete)(struct hsi_msg *msg); void (*destructor)(struct hsi_msg *msg); int status; unsigned int actual_len; unsigned int channel; unsigned int ttype:1; unsigned int break_frame:1; };”h]”hX�struct hsi_msg { struct list_head link; struct hsi_client *cl; struct sg_table sgt; void *context; void (*complete)(struct hsi_msg *msg); void (*destructor)(struct hsi_msg *msg); int status; unsigned int actual_len; unsigned int channel; unsigned int ttype:1; unsigned int break_frame:1; };”…”�”}”hjl sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K±hjK ubhÝ)�”}”(hŒ **Members**”h]”j“)�”}”(hj} h]”hŒMembers”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj{ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K¿hjK ubjw)�”}”(hhh]”(j|)�”}”(hŒ5``link`` Free to use by the current descriptor owner ”h]”(j‚)�”}”(hŒ``link``”h]”jà)�”}”(hjœ h]”hŒlink”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjš ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K­hj– ubj’)�”}”(hhh]”hÝ)�”}”(hŒ+Free to use by the current descriptor owner”h]”hŒ+Free to use by the current descriptor owner”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j± h´K­hj² ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj– ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j± h´K­hj“ ubj|)�”}”(hŒ2``cl`` HSI device client that issues the transfer ”h]”(j‚)�”}”(hŒ``cl``”h]”jà)�”}”(hjÕ h]”hŒcl”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K®hjÏ ubj’)�”}”(hhh]”hÝ)�”}”(hŒ*HSI device client that issues the transfer”h]”hŒ*HSI device client that issues the transfer”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jê h´K®hjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÏ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jê h´K®hj“ ubj|)�”}”(hŒ&``sgt`` Head of the scatterlist array ”h]”(j‚)�”}”(hŒ``sgt``”h]”jà)�”}”(hj h]”hŒsgt”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K¯hj ubj’)�”}”(hhh]”hÝ)�”}”(hŒHead of the scatterlist array”h]”hŒHead of the scatterlist array”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j# h´K¯hj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j# h´K¯hj“ ubj|)�”}”(hŒ;``context`` Client context data associated to the transfer ”h]”(j‚)�”}”(hŒ ``context``”h]”jà)�”}”(hjG h]”hŒcontext”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjE ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K°hjA ubj’)�”}”(hhh]”hÝ)�”}”(hŒ.Client context data associated to the transfer”h]”hŒ.Client context data associated to the transfer”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j\ h´K°hj] ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjA ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j\ h´K°hj“ ubj|)�”}”(hŒ*``complete`` Transfer completion callback ”h]”(j‚)�”}”(hŒ ``complete``”h]”jà)�”}”(hj€ h]”hŒcomplete”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj~ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K±hjz ubj’)�”}”(hhh]”hÝ)�”}”(hŒTransfer completion callback”h]”hŒTransfer completion callback”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j• h´K±hj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjz ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j• h´K±hj“ ubj|)�”}”(hŒ:``destructor`` Destructor to free resources when flushing ”h]”(j‚)�”}”(hŒ``destructor``”h]”jà)�”}”(hj¹ h]”hŒ destructor”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj· ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K²hj³ ubj’)�”}”(hhh]”hÝ)�”}”(hŒ*Destructor to free resources when flushing”h]”hŒ*Destructor to free resources when flushing”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÎ h´K²hjÏ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj³ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jÎ h´K²hj“ ubj|)�”}”(hŒ1``status`` Status of the transfer when completed ”h]”(j‚)�”}”(hŒ ``status``”h]”jà)�”}”(hjò h]”hŒstatus”…”�”}”(hjô h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjð ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K³hjì ubj’)�”}”(hhh]”hÝ)�”}”(hŒ%Status of the transfer when completed”h]”hŒ%Status of the transfer when completed”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´K³hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjì ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jh´K³hj“ ubj|)�”}”(hŒ?``actual_len`` Actual length of data transferred on completion ”h]”(j‚)�”}”(hŒ``actual_len``”h]”jà)�”}”(hj+h]”hŒ actual_len”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K´hj%ubj’)�”}”(hhh]”hÝ)�”}”(hŒ/Actual length of data transferred on completion”h]”hŒ/Actual length of data transferred on completion”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j@h´K´hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j@h´K´hj“ ubj|)�”}”(hŒ.``channel`` Channel were to TX/RX the message ”h]”(j‚)�”}”(hŒ ``channel``”h]”jà)�”}”(hjdh]”hŒchannel”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kµhj^ubj’)�”}”(hhh]”hÝ)�”}”(hŒ!Channel were to TX/RX the message”h]”hŒ!Channel were to TX/RX the message”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jyh´Kµhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jyh´Kµhj“ ubj|)�”}”(hŒ2``ttype`` Transfer type (TX if set, RX otherwise) ”h]”(j‚)�”}”(hŒ ``ttype``”h]”jà)�”}”(hj�h]”hŒttype”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K¶hj—ubj’)�”}”(hhh]”hÝ)�”}”(hŒ'Transfer type (TX if set, RX otherwise)”h]”hŒ'Transfer type (TX if set, RX otherwise)”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j²h´K¶hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j²h´K¶hj“ ubj|)�”}”(hŒe``break_frame`` if true HSI will send/receive a break frame. Data buffers are ignored in the request.”h]”(j‚)�”}”(hŒ``break_frame``”h]”jà)�”}”(hjÖh]”hŒ break_frame”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K·hjÐubj’)�”}”(hhh]”hÝ)�”}”(hŒUif true HSI will send/receive a break frame. Data buffers are ignored in the request.”h]”hŒUif true HSI will send/receive a break frame. Data buffers are ignored in the request.”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jëh´K·hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jëh´K·hj“ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjK ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_port (C struct)”Œ c.hsi_port”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒhsi_port”h]”j)�”}”(hŒstruct hsi_port”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj+h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K¾ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj+h²hh³j<h´K¾ubj/)�”}”(hŒhsi_port”h]”j5)�”}”(hj)h]”hŒhsi_port”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjKubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj+h²hh³j<h´K¾ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj'h²hh³j<h´K¾ubah}”(h]”j"ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j<h´K¾hj$h²hubja)�”}”(hhh]”hÝ)�”}”(hŒHSI port device”h]”hŒHSI port device”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÍhjnh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj$h²hh³j<h´K¾ubeh}”(h]”h ]”(j}Œstruct”eh"]”h$]”h&]”j‚j}jƒj‰j„j‰j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hX©**Definition**:: struct hsi_port { struct device device; struct hsi_config tx_cfg; struct hsi_config rx_cfg; unsigned int num; unsigned int shared:1; int claimed; struct mutex lock; int (*async)(struct hsi_msg *msg); int (*setup)(struct hsi_client *cl); int (*flush)(struct hsi_client *cl); int (*start_tx)(struct hsi_client *cl); int (*stop_tx)(struct hsi_client *cl); int (*release)(struct hsi_client *cl); struct blocking_notifier_head n_head; }; **Members** ``device`` Driver model representation of the device ``tx_cfg`` Current TX path configuration ``rx_cfg`` Current RX path configuration ``num`` Port number ``shared`` Set when port can be shared by different clients ``claimed`` Reference count of clients which claimed the port ``lock`` Serialize port claim ``async`` Asynchronous transfer callback ``setup`` Callback to set the HSI client configuration ``flush`` Callback to clean the HW state and destroy all pending transfers ``start_tx`` Callback to inform that a client wants to TX data ``stop_tx`` Callback to inform that a client no longer wishes to TX data ``release`` Callback to inform that a client no longer uses the port ``n_head`` Notifier chain for signaling port events to the clients.”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(j“)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj‘ubhŒ:”…”�”}”(hj‘h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÑhj�ubj )�”}”(hXQstruct hsi_port { struct device device; struct hsi_config tx_cfg; struct hsi_config rx_cfg; unsigned int num; unsigned int shared:1; int claimed; struct mutex lock; int (*async)(struct hsi_msg *msg); int (*setup)(struct hsi_client *cl); int (*flush)(struct hsi_client *cl); int (*start_tx)(struct hsi_client *cl); int (*stop_tx)(struct hsi_client *cl); int (*release)(struct hsi_client *cl); struct blocking_notifier_head n_head; };”h]”hXQstruct hsi_port { struct device device; struct hsi_config tx_cfg; struct hsi_config rx_cfg; unsigned int num; unsigned int shared:1; int claimed; struct mutex lock; int (*async)(struct hsi_msg *msg); int (*setup)(struct hsi_client *cl); int (*flush)(struct hsi_client *cl); int (*start_tx)(struct hsi_client *cl); int (*stop_tx)(struct hsi_client *cl); int (*release)(struct hsi_client *cl); struct blocking_notifier_head n_head; };”…”�”}”hj®sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÓhj�ubhÝ)�”}”(hŒ **Members**”h]”j“)�”}”(hj¿h]”hŒMembers”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Kähj�ubjw)�”}”(hhh]”(j|)�”}”(hŒ5``device`` Driver model representation of the device ”h]”(j‚)�”}”(hŒ ``device``”h]”jà)�”}”(hjÞh]”hŒdevice”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÏhjØubj’)�”}”(hhh]”hÝ)�”}”(hŒ)Driver model representation of the device”h]”hŒ)Driver model representation of the device”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jóh´KÏhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjØubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jóh´KÏhjÕubj|)�”}”(hŒ)``tx_cfg`` Current TX path configuration ”h]”(j‚)�”}”(hŒ ``tx_cfg``”h]”jà)�”}”(hjh]”hŒtx_cfg”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÐhjubj’)�”}”(hhh]”hÝ)�”}”(hŒCurrent TX path configuration”h]”hŒCurrent TX path configuration”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j,h´KÐhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j,h´KÐhjÕubj|)�”}”(hŒ)``rx_cfg`` Current RX path configuration ”h]”(j‚)�”}”(hŒ ``rx_cfg``”h]”jà)�”}”(hjPh]”hŒrx_cfg”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÑhjJubj’)�”}”(hhh]”hÝ)�”}”(hŒCurrent RX path configuration”h]”hŒCurrent RX path configuration”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jeh´KÑhjfubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jeh´KÑhjÕubj|)�”}”(hŒ``num`` Port number ”h]”(j‚)�”}”(hŒ``num``”h]”jà)�”}”(hj‰h]”hŒnum”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÒhjƒubj’)�”}”(hhh]”hÝ)�”}”(hŒ Port number”h]”hŒ Port number”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jžh´KÒhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jžh´KÒhjÕubj|)�”}”(hŒ<``shared`` Set when port can be shared by different clients ”h]”(j‚)�”}”(hŒ ``shared``”h]”jà)�”}”(hjÂh]”hŒshared”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÓhj¼ubj’)�”}”(hhh]”hÝ)�”}”(hŒ0Set when port can be shared by different clients”h]”hŒ0Set when port can be shared by different clients”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j×h´KÓhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j×h´KÓhjÕubj|)�”}”(hŒ>``claimed`` Reference count of clients which claimed the port ”h]”(j‚)�”}”(hŒ ``claimed``”h]”jà)�”}”(hjûh]”hŒclaimed”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÔhjõubj’)�”}”(hhh]”hÝ)�”}”(hŒ1Reference count of clients which claimed the port”h]”hŒ1Reference count of clients which claimed the port”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´KÔhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jh´KÔhjÕubj|)�”}”(hŒ``lock`` Serialize port claim ”h]”(j‚)�”}”(hŒ``lock``”h]”jà)�”}”(hj4h]”hŒlock”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÕhj.ubj’)�”}”(hhh]”hÝ)�”}”(hŒSerialize port claim”h]”hŒSerialize port claim”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jIh´KÕhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jIh´KÕhjÕubj|)�”}”(hŒ)``async`` Asynchronous transfer callback ”h]”(j‚)�”}”(hŒ ``async``”h]”jà)�”}”(hjmh]”hŒasync”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÖhjgubj’)�”}”(hhh]”hÝ)�”}”(hŒAsynchronous transfer callback”h]”hŒAsynchronous transfer callback”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‚h´KÖhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j‚h´KÖhjÕubj|)�”}”(hŒ7``setup`` Callback to set the HSI client configuration ”h]”(j‚)�”}”(hŒ ``setup``”h]”jà)�”}”(hj¦h]”hŒsetup”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´K×hj ubj’)�”}”(hhh]”hÝ)�”}”(hŒ,Callback to set the HSI client configuration”h]”hŒ,Callback to set the HSI client configuration”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j»h´K×hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j»h´K×hjÕubj|)�”}”(hŒK``flush`` Callback to clean the HW state and destroy all pending transfers ”h]”(j‚)�”}”(hŒ ``flush``”h]”jà)�”}”(hjßh]”hŒflush”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KØhjÙubj’)�”}”(hhh]”hÝ)�”}”(hŒ@Callback to clean the HW state and destroy all pending transfers”h]”hŒ@Callback to clean the HW state and destroy all pending transfers”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jôh´KØhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jôh´KØhjÕubj|)�”}”(hŒ?``start_tx`` Callback to inform that a client wants to TX data ”h]”(j‚)�”}”(hŒ ``start_tx``”h]”jà)�”}”(hjh]”hŒstart_tx”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÙhjubj’)�”}”(hhh]”hÝ)�”}”(hŒ1Callback to inform that a client wants to TX data”h]”hŒ1Callback to inform that a client wants to TX data”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j-h´KÙhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j-h´KÙhjÕubj|)�”}”(hŒI``stop_tx`` Callback to inform that a client no longer wishes to TX data ”h]”(j‚)�”}”(hŒ ``stop_tx``”h]”jà)�”}”(hjQh]”hŒstop_tx”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´KÚhjKubj’)�”}”(hhh]”hÝ)�”}”(hŒh]”hŒid”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M hj8ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI controller ID”h]”hŒHSI controller ID”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jSh´M hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jSh´M hjÃubj|)�”}”(hŒ4``num_ports`` Number of ports in the HSI controller ”h]”(j‚)�”}”(hŒ ``num_ports``”h]”jà)�”}”(hjwh]”hŒ num_ports”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M hjqubj’)�”}”(hhh]”hÝ)�”}”(hŒ%Number of ports in the HSI controller”h]”hŒ%Number of ports in the HSI controller”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŒh´M hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jŒh´M hjÃubj|)�”}”(hŒ``port`` Array of HSI ports”h]”(j‚)�”}”(hŒ``port``”h]”jà)�”}”(hj°h]”hŒport”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M hjªubj’)�”}”(hhh]”hÝ)�”}”(hŒArray of HSI ports”h]”hŒArray of HSI ports”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jÅh´M hjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhj{ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_id (C function)”Œc.hsi_id”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ+unsigned int hsi_id (struct hsi_client *cl)”h]”j)�”}”(hŒ*unsigned int hsi_id(struct hsi_client *cl)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j hjh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MDubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjh²hh³jh´MDubj )�”}”(hŒint”h]”hŒint”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjh²hh³jh´MDubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjh²hh³jh´MDubj/)�”}”(hŒhsi_id”h]”j5)�”}”(hŒhsi_id”h]”hŒhsi_id”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjFubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjh²hh³jh´MDubhŒdesc_parameterlist”“”)�”}”(hŒ(struct hsi_client *cl)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjfubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjfubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj…ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”Œ identifier”Œ reftarget”jŠŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j£Œ ASTIdentifier”“”)�”}”jžjLsbŒc.hsi_id”†”asbuh1hhjfubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjfubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j¾hjfubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj`ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjh²hh³jh´MDubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjh²hh³jh´MDubah}”(h]”jýah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jh´MDhjÿh²hubja)�”}”(hhh]”hÝ)�”}”(hŒ,Get HSI controller ID associated to a client”h]”hŒ,Get HSI controller ID associated to a client”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MDhjöh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÿh²hh³jh´MDubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjj„jj…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒŽ**Parameters** ``struct hsi_client *cl`` Pointer to a HSI client **Description** Return the controller id where the client is attached to”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MHhjubjw)�”}”(hhh]”j|)�”}”(hŒ2``struct hsi_client *cl`` Pointer to a HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj:h]”hŒstruct hsi_client *cl”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MEhj4ubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to a HSI client”h]”hŒPointer to a HSI client”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jOh´MEhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jOh´MEhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhjubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjuh]”hŒ Description”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MGhjubhÝ)�”}”(hŒ8Return the controller id where the client is attached to”h]”hŒ8Return the controller id where the client is attached to”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MFhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_port_id (C function)”Œ c.hsi_port_id”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ0unsigned int hsi_port_id (struct hsi_client *cl)”h]”j)�”}”(hŒ/unsigned int hsi_port_id(struct hsi_client *cl)”h]”(j )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¶h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MOubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¶h²hh³jÈh´MOubj )�”}”(hŒint”h]”hŒint”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¶h²hh³jÈh´MOubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¶h²hh³jÈh´MOubj/)�”}”(hŒ hsi_port_id”h]”j5)�”}”(hŒ hsi_port_id”h]”hŒ hsi_port_id”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjóubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj¶h²hh³jÈh´MOubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j3Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjùsbŒ c.hsi_port_id”†”asbuh1hhjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj¶h²hh³jÈh´MOubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj²h²hh³jÈh´MOubah}”(h]”j­ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jÈh´MOhj¯h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ,Gets the port number a client is attached to”h]”hŒ,Gets the port number a client is attached to”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MOhj“h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj¯h²hh³jÈh´MOubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj®j„j®j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒƒ**Parameters** ``struct hsi_client *cl`` Pointer to HSI client **Description** Return the port number associated to the client”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj¸h]”hŒ Parameters”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MShj²ubjw)�”}”(hhh]”j|)�”}”(hŒ0``struct hsi_client *cl`` Pointer to HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj×h]”hŒstruct hsi_client *cl”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MPhjÑubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to HSI client”h]”hŒPointer to HSI client”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jìh´MPhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jìh´MPhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj²ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MRhj²ubhÝ)�”}”(hŒ/Return the port number associated to the client”h]”hŒ/Return the port number associated to the client”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MQhj²ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_setup (C function)”Œ c.hsi_setup”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ%int hsi_setup (struct hsi_client *cl)”h]”j)�”}”(hŒ$int hsi_setup(struct hsi_client *cl)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjSh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MZubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjSh²hh³jeh´MZubj/)�”}”(hŒ hsi_setup”h]”j5)�”}”(hŒ hsi_setup”h]”hŒ hsi_setup”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjtubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjSh²hh³jeh´MZubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj�ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj�ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j´Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjzsbŒ c.hsi_setup”†”asbuh1hhj�ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj�ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj�ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjŒubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjSh²hh³jeh´MZubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjOh²hh³jeh´MZubah}”(h]”jJah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jeh´MZhjLh²hubja)�”}”(hhh]”hÝ)�”}”(hŒConfigure the client's port”h]”hŒConfigure the client’s port”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MZhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjLh²hh³jeh´MZubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj/j„j/j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒð**Parameters** ``struct hsi_client *cl`` Pointer to the HSI client **Description** When sharing ports, clients should either relay on a single client setup or have the same setup for all of them. Return -errno on failure, 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj9h]”hŒ Parameters”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M^hj3ubjw)�”}”(hhh]”j|)�”}”(hŒ4``struct hsi_client *cl`` Pointer to the HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjXh]”hŒstruct hsi_client *cl”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M[hjRubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI client”h]”hŒPointer to the HSI client”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jmh´M[hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jmh´M[hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj3ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj“h]”hŒ Description”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M]hj3ubhÝ)�”}”(hŒpWhen sharing ports, clients should either relay on a single client setup or have the same setup for all of them.”h]”hŒpWhen sharing ports, clients should either relay on a single client setup or have the same setup for all of them.”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M\hj3ubhÝ)�”}”(hŒ&Return -errno on failure, 0 on success”h]”hŒ&Return -errno on failure, 0 on success”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M_hj3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_flush (C function)”Œ c.hsi_flush”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ%int hsi_flush (struct hsi_client *cl)”h]”j)�”}”(hŒ$int hsi_flush(struct hsi_client *cl)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjãh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Mjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjãh²hh³jõh´Mjubj/)�”}”(hŒ hsi_flush”h]”j5)�”}”(hŒ hsi_flush”h]”hŒ hsi_flush”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjãh²hh³jõh´Mjubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj?ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jDŒmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj sbŒ c.hsi_flush”†”asbuh1hhj ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjãh²hh³jõh´Mjubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjßh²hh³jõh´Mjubah}”(h]”jÚah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jõh´MjhjÜh²hubja)�”}”(hhh]”hÝ)�”}”(hŒ3Flush all pending transactions on the client's port”h]”hŒ5Flush all pending transactions on the client’s port”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Mjhj¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÜh²hh³jõh´Mjubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj¿j„j¿j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hX **Parameters** ``struct hsi_client *cl`` Pointer to the HSI client **Description** This function will destroy all pending hsi_msg in the port and reset the HW port so it is ready to receive and transmit from a clean state. Return -errno on failure, 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjÉh]”hŒ Parameters”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MnhjÃubjw)�”}”(hhh]”j|)�”}”(hŒ4``struct hsi_client *cl`` Pointer to the HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjèh]”hŒstruct hsi_client *cl”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Mkhjâubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI client”h]”hŒPointer to the HSI client”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jýh´Mkhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jýh´Mkhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhjÃubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj#h]”hŒ Description”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MmhjÃubhÝ)�”}”(hŒ‹This function will destroy all pending hsi_msg in the port and reset the HW port so it is ready to receive and transmit from a clean state.”h]”hŒ‹This function will destroy all pending hsi_msg in the port and reset the HW port so it is ready to receive and transmit from a clean state.”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MlhjÃubhÝ)�”}”(hŒ&Return -errno on failure, 0 on success”h]”hŒ&Return -errno on failure, 0 on success”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MohjÃubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_async_read (C function)”Œc.hsi_async_read”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ?int hsi_async_read (struct hsi_client *cl, struct hsi_msg *msg)”h]”j)�”}”(hŒ>int hsi_async_read(struct hsi_client *cl, struct hsi_msg *msg)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjsh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Mzubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjsh²hh³j…h´Mzubj/)�”}”(hŒhsi_async_read”h]”j5)�”}”(hŒhsi_async_read”h]”hŒhsi_async_read”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj”ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjsh²hh³j…h´Mzubj_)�”}”(hŒ,(struct hsi_client *cl, struct hsi_msg *msg)”h]”(je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj°ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj°ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jÔŒmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjšsbŒc.hsi_async_read”†”asbuh1hhj°ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj°ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj°ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj°ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj¬ubje)�”}”(hŒstruct hsi_msg *msg”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj"ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj"ubh)�”}”(hhh]”j5)�”}”(hŒhsi_msg”h]”hŒhsi_msg”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jFŒmodname”NŒ classname”Nj¢j¥)�”}”j¨]”jîŒc.hsi_async_read”†”asbuh1hhj"ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj"ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj"ubj5)�”}”(hŒmsg”h]”hŒmsg”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjsh²hh³j…h´Mzubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjoh²hh³j…h´Mzubah}”(h]”jjah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j…h´Mzhjlh²hubja)�”}”(hhh]”hÝ)�”}”(hŒSubmit a read transfer”h]”hŒSubmit a read transfer”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Mzhj¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjlh²hh³j…h´Mzubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj¿j„j¿j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒÀ**Parameters** ``struct hsi_client *cl`` Pointer to the HSI client ``struct hsi_msg *msg`` HSI message descriptor of the transfer **Description** Return -errno on failure, 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjÉh]”hŒ Parameters”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M~hjÃubjw)�”}”(hhh]”(j|)�”}”(hŒ4``struct hsi_client *cl`` Pointer to the HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjèh]”hŒstruct hsi_client *cl”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M{hjâubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI client”h]”hŒPointer to the HSI client”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jýh´M{hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jýh´M{hjßubj|)�”}”(hŒ?``struct hsi_msg *msg`` HSI message descriptor of the transfer ”h]”(j‚)�”}”(hŒ``struct hsi_msg *msg``”h]”jà)�”}”(hj!h]”hŒstruct hsi_msg *msg”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M|hjubj’)�”}”(hhh]”hÝ)�”}”(hŒ&HSI message descriptor of the transfer”h]”hŒ&HSI message descriptor of the transfer”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j6h´M|hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j6h´M|hjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjÃubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj\h]”hŒ Description”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M~hjÃubhÝ)�”}”(hŒ&Return -errno on failure, 0 on success”h]”hŒ&Return -errno on failure, 0 on success”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M}hjÃubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_async_write (C function)”Œc.hsi_async_write”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ@int hsi_async_write (struct hsi_client *cl, struct hsi_msg *msg)”h]”j)�”}”(hŒ?int hsi_async_write(struct hsi_client *cl, struct hsi_msg *msg)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj�h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M‡ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj�h²hh³j¯h´M‡ubj/)�”}”(hŒhsi_async_write”h]”j5)�”}”(hŒhsi_async_write”h]”hŒhsi_async_write”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¾ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj�h²hh³j¯h´M‡ubj_)�”}”(hŒ,(struct hsi_client *cl, struct hsi_msg *msg)”h]”(je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÚubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÚubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jþŒmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjÄsbŒc.hsi_async_write”†”asbuh1hhjÚubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÚubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjÚubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÚubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjÖubje)�”}”(hŒstruct hsi_msg *msg”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjLubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjLubh)�”}”(hhh]”j5)�”}”(hŒhsi_msg”h]”hŒhsi_msg”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjkubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jpŒmodname”NŒ classname”Nj¢j¥)�”}”j¨]”jŒc.hsi_async_write”†”asbuh1hhjLubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjLubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjLubj5)�”}”(hŒmsg”h]”hŒmsg”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjÖubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj�h²hh³j¯h´M‡ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj™h²hh³j¯h´M‡ubah}”(h]”j”ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j¯h´M‡hj–h²hubja)�”}”(hhh]”hÝ)�”}”(hŒSubmit a write transfer”h]”hŒSubmit a write transfer”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M‡hjÎh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj–h²hh³j¯h´M‡ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjéj„jéj…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒÀ**Parameters** ``struct hsi_client *cl`` Pointer to the HSI client ``struct hsi_msg *msg`` HSI message descriptor of the transfer **Description** Return -errno on failure, 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjóh]”hŒ Parameters”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M‹hjíubjw)�”}”(hhh]”(j|)�”}”(hŒ4``struct hsi_client *cl`` Pointer to the HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjh]”hŒstruct hsi_client *cl”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´Mˆhj ubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI client”h]”hŒPointer to the HSI client”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j'h´Mˆhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j'h´Mˆhj ubj|)�”}”(hŒ?``struct hsi_msg *msg`` HSI message descriptor of the transfer ”h]”(j‚)�”}”(hŒ``struct hsi_msg *msg``”h]”jà)�”}”(hjKh]”hŒstruct hsi_msg *msg”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M‰hjEubj’)�”}”(hhh]”hÝ)�”}”(hŒ&HSI message descriptor of the transfer”h]”hŒ&HSI message descriptor of the transfer”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j`h´M‰hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjEubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j`h´M‰hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjíubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj†h]”hŒ Description”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M‹hjíubhÝ)�”}”(hŒ&Return -errno on failure, 0 on success”h]”hŒ&Return -errno on failure, 0 on success”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´MŠhjíubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_start_tx (C function)”Œc.hsi_start_tx”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ(int hsi_start_tx (struct hsi_client *cl)”h]”j)�”}”(hŒ'int hsi_start_tx(struct hsi_client *cl)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÇh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M”ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÇh²hh³jÙh´M”ubj/)�”}”(hŒ hsi_start_tx”h]”j5)�”}”(hŒ hsi_start_tx”h]”hŒ hsi_start_tx”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjèubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjÇh²hh³jÙh´M”ubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj# ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j( Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjîsbŒc.hsi_start_tx”†”asbuh1hhj ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjÇh²hh³jÙh´M”ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjÃh²hh³jÙh´M”ubah}”(h]”j¾ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jÙh´M”hjÀh²hubja)�”}”(hhh]”hÝ)�”}”(hŒ3Signal the port that the client wants to start a TX”h]”hŒ3Signal the port that the client wants to start a TX”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M”hjˆ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÀh²hh³jÙh´M”ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj£ j„j£ j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒ~**Parameters** ``struct hsi_client *cl`` Pointer to the HSI client **Description** Return -errno on failure, 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj­ h]”hŒ Parameters”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj« ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M˜hj§ ubjw)�”}”(hhh]”j|)�”}”(hŒ4``struct hsi_client *cl`` Pointer to the HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjÌ h]”hŒstruct hsi_client *cl”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÊ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M•hjÆ ubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI client”h]”hŒPointer to the HSI client”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³já h´M•hjâ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÆ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³já h´M•hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj§ ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj!h]”hŒ Description”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M—hj§ ubhÝ)�”}”(hŒ&Return -errno on failure, 0 on success”h]”hŒ&Return -errno on failure, 0 on success”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M–hj§ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_stop_tx (C function)”Œ c.hsi_stop_tx”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ'int hsi_stop_tx (struct hsi_client *cl)”h]”j)�”}”(hŒ&int hsi_stop_tx(struct hsi_client *cl)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjL!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjH!h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M¡ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[!h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjH!h²hh³jZ!h´M¡ubj/)�”}”(hŒ hsi_stop_tx”h]”j5)�”}”(hŒ hsi_stop_tx”h]”hŒ hsi_stop_tx”…”�”}”(hjm!h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hji!ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjH!h²hh³jZ!h´M¡ubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj‰!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj…!ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–!h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj…!ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj§!h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¤!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j©!Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjo!sbŒ c.hsi_stop_tx”†”asbuh1hhj…!ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇ!h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj…!ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjÕ!h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj…!ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjâ!h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj…!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj�!ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjH!h²hh³jZ!h´M¡ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjD!h²hh³jZ!h´M¡ubah}”(h]”j?!ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jZ!h´M¡hjA!h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ;Signal the port that the client no longer wants to transmit”h]”hŒ;Signal the port that the client no longer wants to transmit”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M¡hj "h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjA!h²hh³jZ!h´M¡ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj$"j„j$"j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒ~**Parameters** ``struct hsi_client *cl`` Pointer to the HSI client **Description** Return -errno on failure, 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj."h]”hŒ Parameters”…”�”}”(hj0"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj,"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M¥hj("ubjw)�”}”(hhh]”j|)�”}”(hŒ4``struct hsi_client *cl`` Pointer to the HSI client ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjM"h]”hŒstruct hsi_client *cl”…”�”}”(hjO"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjK"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M¢hjG"ubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI client”h]”hŒPointer to the HSI client”…”�”}”(hjf"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jb"h´M¢hjc"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjG"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jb"h´M¢hjD"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj("ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjˆ"h]”hŒ Description”…”�”}”(hjŠ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj†"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M¤hj("ubhÝ)�”}”(hŒ&Return -errno on failure, 0 on success”h]”hŒ&Return -errno on failure, 0 on success”…”�”}”(hjž"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒV/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:83: ./include/linux/hsi/hsi.h”h´M£hj("ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ(hsi_port_unregister_clients (C function)”Œc.hsi_port_unregister_clients”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ8void hsi_port_unregister_clients (struct hsi_port *port)”h]”j)�”}”(hŒ7void hsi_port_unregister_clients(struct hsi_port *port)”h]”(j )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÍ"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÉ"h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mbubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ"h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÉ"h²hh³jÛ"h´Mbubj/)�”}”(hŒhsi_port_unregister_clients”h]”j5)�”}”(hŒhsi_port_unregister_clients”h]”hŒhsi_port_unregister_clients”…”�”}”(hjî"h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjê"ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjÉ"h²hh³jÛ"h´Mbubj_)�”}”(hŒ(struct hsi_port *port)”h]”je)�”}”(hŒstruct hsi_port *port”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj#ubh)�”}”(hhh]”j5)�”}”(hŒhsi_port”h]”hŒhsi_port”…”�”}”(hj(#h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj%#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j*#Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjð"sbŒc.hsi_port_unregister_clients”†”asbuh1hhj#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH#h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj#ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjV#h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj#ubj5)�”}”(hŒport”h]”hŒport”…”�”}”(hjc#h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj#ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjÉ"h²hh³jÛ"h´Mbubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjÅ"h²hh³jÛ"h´Mbubah}”(h]”jÀ"ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jÛ"h´MbhjÂ"h²hubja)�”}”(hhh]”hÝ)�”}”(hŒUnregister an HSI port”h]”hŒUnregister an HSI port”…”�”}”(hj�#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MbhjŠ#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÂ"h²hh³jÛ"h´Mbubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj¥#j„j¥#j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒF**Parameters** ``struct hsi_port *port`` The HSI port to unregister”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj¯#h]”hŒ Parameters”…”�”}”(hj±#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj­#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mfhj©#ubjw)�”}”(hhh]”j|)�”}”(hŒ4``struct hsi_port *port`` The HSI port to unregister”h]”(j‚)�”}”(hŒ``struct hsi_port *port``”h]”jà)�”}”(hjÎ#h]”hŒstruct hsi_port *port”…”�”}”(hjÐ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÌ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MhhjÈ#ubj’)�”}”(hhh]”hÝ)�”}”(hŒThe HSI port to unregister”h]”hŒThe HSI port to unregister”…”�”}”(hjç#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mchjä#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÈ#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jã#h´MhhjÅ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj©#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ&hsi_unregister_controller (C function)”Œc.hsi_unregister_controller”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ;void hsi_unregister_controller (struct hsi_controller *hsi)”h]”j)�”}”(hŒ:void hsi_unregister_controller(struct hsi_controller *hsi)”h]”(j )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj($h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj$$h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mlubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7$h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj$$h²hh³j6$h´Mlubj/)�”}”(hŒhsi_unregister_controller”h]”j5)�”}”(hŒhsi_unregister_controller”h]”hŒhsi_unregister_controller”…”�”}”(hjI$h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjE$ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj$$h²hh³j6$h´Mlubj_)�”}”(hŒ(struct hsi_controller *hsi)”h]”je)�”}”(hŒstruct hsi_controller *hsi”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hje$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hja$ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr$h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhja$ubh)�”}”(hhh]”j5)�”}”(hŒhsi_controller”h]”hŒhsi_controller”…”�”}”(hjƒ$h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj€$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j…$Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjK$sbŒc.hsi_unregister_controller”†”asbuh1hhja$ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£$h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhja$ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj±$h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hja$ubj5)�”}”(hŒhsi”h]”hŒhsi”…”�”}”(hj¾$h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hja$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj]$ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj$$h²hh³j6$h´Mlubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj $h²hh³j6$h´Mlubah}”(h]”j$ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j6$h´Mlhj$h²hubja)�”}”(hhh]”hÝ)�”}”(hŒUnregister an HSI controller”h]”hŒUnregister an HSI controller”…”�”}”(hjè$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mlhjå$h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj$h²hh³j6$h´Mlubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj%j„j%j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒO**Parameters** ``struct hsi_controller *hsi`` The HSI controller to register”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj %h]”hŒ Parameters”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mphj%ubjw)�”}”(hhh]”j|)�”}”(hŒ=``struct hsi_controller *hsi`` The HSI controller to register”h]”(j‚)�”}”(hŒ``struct hsi_controller *hsi``”h]”jà)�”}”(hj)%h]”hŒstruct hsi_controller *hsi”…”�”}”(hj+%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj'%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mrhj#%ubj’)�”}”(hhh]”hÝ)�”}”(hŒThe HSI controller to register”h]”hŒThe HSI controller to register”…”�”}”(hjB%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mmhj?%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj#%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j>%h´Mrhj %ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ$hsi_register_controller (C function)”Œc.hsi_register_controller”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ8int hsi_register_controller (struct hsi_controller *hsi)”h]”j)�”}”(hŒ7int hsi_register_controller(struct hsi_controller *hsi)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjƒ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj%h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mwubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’%h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj%h²hh³j‘%h´Mwubj/)�”}”(hŒhsi_register_controller”h]”j5)�”}”(hŒhsi_register_controller”h]”hŒhsi_register_controller”…”�”}”(hj¤%h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj %ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj%h²hh³j‘%h´Mwubj_)�”}”(hŒ(struct hsi_controller *hsi)”h]”je)�”}”(hŒstruct hsi_controller *hsi”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjÀ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¼%ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ%h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¼%ubh)�”}”(hhh]”j5)�”}”(hŒhsi_controller”h]”hŒhsi_controller”…”�”}”(hjÞ%h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÛ%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jà%Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj¦%sbŒc.hsi_register_controller”†”asbuh1hhj¼%ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ%h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¼%ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj¼%ubj5)�”}”(hŒhsi”h]”hŒhsi”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¼%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj¸%ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj%h²hh³j‘%h´Mwubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj{%h²hh³j‘%h´Mwubah}”(h]”jv%ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j‘%h´Mwhjx%h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ(Register an HSI controller and its ports”h]”hŒ(Register an HSI controller and its ports”…”�”}”(hjC&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mwhj@&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjx%h²hh³j‘%h´Mwubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj[&j„j[&j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒŠ**Parameters** ``struct hsi_controller *hsi`` The HSI controller to register **Description** Returns -errno on failure, 0 on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hje&h]”hŒ Parameters”…”�”}”(hjg&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjc&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M{hj_&ubjw)�”}”(hhh]”j|)�”}”(hŒ>``struct hsi_controller *hsi`` The HSI controller to register ”h]”(j‚)�”}”(hŒ``struct hsi_controller *hsi``”h]”jà)�”}”(hj„&h]”hŒstruct hsi_controller *hsi”…”�”}”(hj†&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj‚&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mxhj~&ubj’)�”}”(hhh]”hÝ)�”}”(hŒThe HSI controller to register”h]”hŒThe HSI controller to register”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j™&h´Mxhjš&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj~&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j™&h´Mxhj{&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj_&ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj¿&h]”hŒ Description”…”�”}”(hjÁ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj½&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mzhj_&ubhÝ)�”}”(hŒ(Returns -errno on failure, 0 on success.”h]”hŒ(Returns -errno on failure, 0 on success.”…”�”}”(hjÕ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Myhj_&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ'hsi_register_client_driver (C function)”Œc.hsi_register_client_driver”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ>int hsi_register_client_driver (struct hsi_client_driver *drv)”h]”j)�”}”(hŒ=int hsi_register_client_driver(struct hsi_client_driver *drv)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj'h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M˜ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj'h²hh³j'h´M˜ubj/)�”}”(hŒhsi_register_client_driver”h]”j5)�”}”(hŒhsi_register_client_driver”h]”hŒhsi_register_client_driver”…”�”}”(hj%'h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj!'ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj'h²hh³j'h´M˜ubj_)�”}”(hŒ(struct hsi_client_driver *drv)”h]”je)�”}”(hŒstruct hsi_client_driver *drv”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjA'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj='ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN'h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj='ubh)�”}”(hhh]”j5)�”}”(hŒhsi_client_driver”h]”hŒhsi_client_driver”…”�”}”(hj_'h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj\'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”ja'Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj''sbŒc.hsi_register_client_driver”†”asbuh1hhj='ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj='ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj='ubj5)�”}”(hŒdrv”h]”hŒdrv”…”�”}”(hjš'h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj='ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj9'ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj'h²hh³j'h´M˜ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjü&h²hh³j'h´M˜ubah}”(h]”j÷&ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j'h´M˜hjù&h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ%Register an HSI client to the HSI bus”h]”hŒ%Register an HSI client to the HSI bus”…”�”}”(hjÄ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M˜hjÁ'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjù&h²hh³j'h´M˜ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjÜ'j„jÜ'j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒŒ**Parameters** ``struct hsi_client_driver *drv`` HSI client driver to register **Description** Returns -errno on failure, 0 on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjæ'h]”hŒ Parameters”…”�”}”(hjè'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjä'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mœhjà'ubjw)�”}”(hhh]”j|)�”}”(hŒ@``struct hsi_client_driver *drv`` HSI client driver to register ”h]”(j‚)�”}”(hŒ!``struct hsi_client_driver *drv``”h]”jà)�”}”(hj(h]”hŒstruct hsi_client_driver *drv”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M™hjÿ'ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI client driver to register”h]”hŒHSI client driver to register”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j(h´M™hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÿ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j(h´M™hjü'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhjà'ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj@(h]”hŒ Description”…”�”}”(hjB(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj>(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M›hjà'ubhÝ)�”}”(hŒ(Returns -errno on failure, 0 on success.”h]”hŒ(Returns -errno on failure, 0 on success.”…”�”}”(hjV(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mšhjà'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_put_controller (C function)”Œc.hsi_put_controller”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ4void hsi_put_controller (struct hsi_controller *hsi)”h]”j)�”}”(hŒ3void hsi_put_controller(struct hsi_controller *hsi)”h]”(j )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj…(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj�(h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M°ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”(h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj�(h²hh³j“(h´M°ubj/)�”}”(hŒhsi_put_controller”h]”j5)�”}”(hŒhsi_put_controller”h]”hŒhsi_put_controller”…”�”}”(hj¦(h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¢(ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj�(h²hh³j“(h´M°ubj_)�”}”(hŒ(struct hsi_controller *hsi)”h]”je)�”}”(hŒstruct hsi_controller *hsi”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjÂ(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¾(ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ(h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¾(ubh)�”}”(hhh]”j5)�”}”(hŒhsi_controller”h]”hŒhsi_controller”…”�”}”(hjà(h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÝ(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jâ(Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj¨(sbŒc.hsi_put_controller”†”asbuh1hhj¾(ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¾(ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj¾(ubj5)�”}”(hŒhsi”h]”hŒhsi”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¾(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjº(ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj�(h²hh³j“(h´M°ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj}(h²hh³j“(h´M°ubah}”(h]”jx(ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j“(h´M°hjz(h²hubja)�”}”(hhh]”hÝ)�”}”(hŒFree an HSI controller”h]”hŒFree an HSI controller”…”�”}”(hjE)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M°hjB)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjz(h²hh³j“(h´M°ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj])j„j])j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hX,**Parameters** ``struct hsi_controller *hsi`` Pointer to the HSI controller to freed **Description** HSI controller drivers should only use this function if they need to free their allocated hsi_controller structures before a successful call to hsi_register_controller. Other use is not allowed.”•h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjg)h]”hŒ Parameters”…”�”}”(hji)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hje)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M´hja)ubjw)�”}”(hhh]”j|)�”}”(hŒF``struct hsi_controller *hsi`` Pointer to the HSI controller to freed ”h]”(j‚)�”}”(hŒ``struct hsi_controller *hsi``”h]”jà)�”}”(hj†)h]”hŒstruct hsi_controller *hsi”…”�”}”(hjˆ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj„)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M²hj€)ubj’)�”}”(hhh]”hÝ)�”}”(hŒ&Pointer to the HSI controller to freed”h]”hŒ&Pointer to the HSI controller to freed”…”�”}”(hjŸ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j›)h´M²hjœ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj€)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j›)h´M²hj})ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhja)ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjÁ)h]”hŒ Description”…”�”}”(hjÃ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj¿)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M´hja)ubhÝ)�”}”(hŒÂHSI controller drivers should only use this function if they need to free their allocated hsi_controller structures before a successful call to hsi_register_controller. Other use is not allowed.”h]”hŒÂHSI controller drivers should only use this function if they need to free their allocated hsi_controller structures before a successful call to hsi_register_controller. Other use is not allowed.”…”�”}”(hj×)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M³hja)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ!hsi_alloc_controller (C function)”Œc.hsi_alloc_controller”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒPstruct hsi_controller * hsi_alloc_controller (unsigned int n_ports, gfp_t flags)”h]”j)�”}”(hŒNstruct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags)”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj*h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÇubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj*h²hh³j*h´MÇubh)�”}”(hhh]”j5)�”}”(hŒhsi_controller”h]”hŒhsi_controller”…”�”}”(hj%*h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj"*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j'*Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžŒhsi_alloc_controller”sbŒc.hsi_alloc_controller”†”asbuh1hhj*h²hh³j*h´MÇubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF*h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj*h²hh³j*h´MÇubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjT*h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj*h²hh³j*h´MÇubj/)�”}”(hŒhsi_alloc_controller”h]”j5)�”}”(hjC*h]”hŒhsi_alloc_controller”…”�”}”(hje*h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hja*ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj*h²hh³j*h´MÇubj_)�”}”(hŒ#(unsigned int n_ports, gfp_t flags)”h]”(je)�”}”(hŒunsigned int n_ports”h]”(j )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj€*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj|*ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ*h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj|*ubj )�”}”(hŒint”h]”hŒint”…”�”}”(hjœ*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj|*ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª*h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj|*ubj5)�”}”(hŒn_ports”h]”hŒn_ports”…”�”}”(hj¸*h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj|*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjx*ubje)�”}”(hŒ gfp_t flags”h]”(h)�”}”(hhh]”j5)�”}”(hŒgfp_t”h]”hŒgfp_t”…”�”}”(hjÔ*h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÑ*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jÖ*Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”jA*Œc.hsi_alloc_controller”†”asbuh1hhjÍ*ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò*h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÍ*ubj5)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÍ*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjx*ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj*h²hh³j*h´MÇubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjþ)h²hh³j*h´MÇubah}”(h]”jù)ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j*h´MÇhjû)h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ(Allocate an HSI controller and its ports”h]”hŒ(Allocate an HSI controller and its ports”…”�”}”(hj*+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÇhj'+h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjû)h²hh³j*h´MÇubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjB+j„jB+j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒÒ**Parameters** ``unsigned int n_ports`` Number of ports on the HSI controller ``gfp_t flags`` Kernel allocation flags **Description** Return NULL on failure or a pointer to an hsi_controller on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjL+h]”hŒ Parameters”…”�”}”(hjN+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjJ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MËhjF+ubjw)�”}”(hhh]”(j|)�”}”(hŒ?``unsigned int n_ports`` Number of ports on the HSI controller ”h]”(j‚)�”}”(hŒ``unsigned int n_ports``”h]”jà)�”}”(hjk+h]”hŒunsigned int n_ports”…”�”}”(hjm+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhji+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÈhje+ubj’)�”}”(hhh]”hÝ)�”}”(hŒ%Number of ports on the HSI controller”h]”hŒ%Number of ports on the HSI controller”…”�”}”(hj„+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j€+h´MÈhj�+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hje+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j€+h´MÈhjb+ubj|)�”}”(hŒ(``gfp_t flags`` Kernel allocation flags ”h]”(j‚)�”}”(hŒ``gfp_t flags``”h]”jà)�”}”(hj¤+h]”hŒ gfp_t flags”…”�”}”(hj¦+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj¢+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÉhjž+ubj’)�”}”(hhh]”hÝ)�”}”(hŒKernel allocation flags”h]”hŒKernel allocation flags”…”�”}”(hj½+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¹+h´MÉhjº+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjž+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j¹+h´MÉhjb+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjF+ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjß+h]”hŒ Description”…”�”}”(hjá+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjÝ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MËhjF+ubhÝ)�”}”(hŒDReturn NULL on failure or a pointer to an hsi_controller on success.”h]”hŒDReturn NULL on failure or a pointer to an hsi_controller on success.”…”�”}”(hjõ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÊhjF+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_free_msg (C function)”Œc.hsi_free_msg”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ'void hsi_free_msg (struct hsi_msg *msg)”h]”j)�”}”(hŒ&void hsi_free_msg(struct hsi_msg *msg)”h]”(j )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj$,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ,h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Møubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3,h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj ,h²hh³j2,h´Møubj/)�”}”(hŒ hsi_free_msg”h]”j5)�”}”(hŒ hsi_free_msg”h]”hŒ hsi_free_msg”…”�”}”(hjE,h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjA,ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj ,h²hh³j2,h´Møubj_)�”}”(hŒ(struct hsi_msg *msg)”h]”je)�”}”(hŒstruct hsi_msg *msg”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hja,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj],ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn,h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj],ubh)�”}”(hhh]”j5)�”}”(hŒhsi_msg”h]”hŒhsi_msg”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj|,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j�,Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjG,sbŒc.hsi_free_msg”†”asbuh1hhj],ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ,h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj],ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj­,h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj],ubj5)�”}”(hŒmsg”h]”hŒmsg”…”�”}”(hjº,h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj],ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjY,ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj ,h²hh³j2,h´Møubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj,h²hh³j2,h´Møubah}”(h]”j,ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j2,h´Møhj,h²hubja)�”}”(hhh]”hÝ)�”}”(hŒFree an HSI message”h]”hŒFree an HSI message”…”�”}”(hjä,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Møhjá,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj,h²hh³j2,h´Møubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjü,j„jü,j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒ�**Parameters** ``struct hsi_msg *msg`` Pointer to the HSI message **Description** Client is responsible to free the buffers pointed by the scatterlists.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj-h]”hŒ Parameters”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mühj-ubjw)�”}”(hhh]”j|)�”}”(hŒ3``struct hsi_msg *msg`` Pointer to the HSI message ”h]”(j‚)�”}”(hŒ``struct hsi_msg *msg``”h]”jà)�”}”(hj%-h]”hŒstruct hsi_msg *msg”…”�”}”(hj'-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj#-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mùhj-ubj’)�”}”(hhh]”hÝ)�”}”(hŒPointer to the HSI message”h]”hŒPointer to the HSI message”…”�”}”(hj>-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j:-h´Mùhj;-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j:-h´Mùhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj-ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj`-h]”hŒ Description”…”�”}”(hjb-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj^-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mûhj-ubhÝ)�”}”(hŒFClient is responsible to free the buffers pointed by the scatterlists.”h]”hŒFClient is responsible to free the buffers pointed by the scatterlists.”…”�”}”(hjv-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Múhj-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_alloc_msg (C function)”Œc.hsi_alloc_msg”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ@struct hsi_msg * hsi_alloc_msg (unsigned int nents, gfp_t flags)”h]”j)�”}”(hŒ>struct hsi_msg *hsi_alloc_msg(unsigned int nents, gfp_t flags)”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj¥-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¡-h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³-h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¡-h²hh³j²-h´Mubh)�”}”(hhh]”j5)�”}”(hŒhsi_msg”h]”hŒhsi_msg”…”�”}”(hjÄ-h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÁ-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jÆ-Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžŒ hsi_alloc_msg”sbŒc.hsi_alloc_msg”†”asbuh1hhj¡-h²hh³j²-h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå-h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj¡-h²hh³j²-h´Mubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjó-h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj¡-h²hh³j²-h´Mubj/)�”}”(hŒ hsi_alloc_msg”h]”j5)�”}”(hjâ-h]”hŒ hsi_alloc_msg”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj.ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj¡-h²hh³j²-h´Mubj_)�”}”(hŒ!(unsigned int nents, gfp_t flags)”h]”(je)�”}”(hŒunsigned int nents”h]”(j )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj.ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-.h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj.ubj )�”}”(hŒint”h]”hŒint”…”�”}”(hj;.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj.ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjI.h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj.ubj5)�”}”(hŒnents”h]”hŒnents”…”�”}”(hjW.h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj.ubje)�”}”(hŒ gfp_t flags”h]”(h)�”}”(hhh]”j5)�”}”(hŒgfp_t”h]”hŒgfp_t”…”�”}”(hjs.h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjp.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”ju.Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”jà-Œc.hsi_alloc_msg”†”asbuh1hhjl.ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘.h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjl.ubj5)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjŸ.h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjl.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj.ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj¡-h²hh³j²-h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj�-h²hh³j²-h´Mubah}”(h]”j˜-ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j²-h´Mhjš-h²hubja)�”}”(hhh]”hÝ)�”}”(hŒAllocate an HSI message”h]”hŒAllocate an HSI message”…”�”}”(hjÉ.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MhjÆ.h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjš-h²hh³j²-h´Mubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjá.j„já.j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hXf**Parameters** ``unsigned int nents`` Number of memory entries ``gfp_t flags`` Kernel allocation flags **Description** nents can be 0. This mainly makes sense for read transfer. In that case, HSI drivers will call the complete callback when there is data to be read without consuming it. Return NULL on failure or a pointer to an hsi_msg on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjë.h]”hŒ Parameters”…”�”}”(hjí.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjé.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M hjå.ubjw)�”}”(hhh]”(j|)�”}”(hŒ0``unsigned int nents`` Number of memory entries ”h]”(j‚)�”}”(hŒ``unsigned int nents``”h]”jà)�”}”(hj /h]”hŒunsigned int nents”…”�”}”(hj /h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mhj/ubj’)�”}”(hhh]”hÝ)�”}”(hŒNumber of memory entries”h]”hŒNumber of memory entries”…”�”}”(hj#/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j/h´Mhj /ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j/h´Mhj/ubj|)�”}”(hŒ(``gfp_t flags`` Kernel allocation flags ”h]”(j‚)�”}”(hŒ``gfp_t flags``”h]”jà)�”}”(hjC/h]”hŒ gfp_t flags”…”�”}”(hjE/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjA/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M hj=/ubj’)�”}”(hhh]”hÝ)�”}”(hŒKernel allocation flags”h]”hŒKernel allocation flags”…”�”}”(hj\/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jX/h´M hjY/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj=/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jX/h´M hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjå.ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj~/h]”hŒ Description”…”�”}”(hj€/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj|/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M hjå.ubhÝ)�”}”(hŒ¨nents can be 0. This mainly makes sense for read transfer. In that case, HSI drivers will call the complete callback when there is data to be read without consuming it.”h]”hŒ¨nents can be 0. This mainly makes sense for read transfer. In that case, HSI drivers will call the complete callback when there is data to be read without consuming it.”…”�”}”(hj”/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M hjå.ubhÝ)�”}”(hŒ=Return NULL on failure or a pointer to an hsi_msg on success.”h]”hŒ=Return NULL on failure or a pointer to an hsi_msg on success.”…”�”}”(hj£/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mhjå.ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_async (C function)”Œ c.hsi_async”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ:int hsi_async (struct hsi_client *cl, struct hsi_msg *msg)”h]”j)�”}”(hŒ9int hsi_async(struct hsi_client *cl, struct hsi_msg *msg)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjÒ/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÎ/h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M(ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá/h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÎ/h²hh³jà/h´M(ubj/)�”}”(hŒ hsi_async”h]”j5)�”}”(hŒ hsi_async”h]”hŒ hsi_async”…”�”}”(hjó/h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjï/ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjÎ/h²hh³jà/h´M(ubj_)�”}”(hŒ,(struct hsi_client *cl, struct hsi_msg *msg)”h]”(je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj 0ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj 0ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj-0h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj*0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j/0Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjõ/sbŒ c.hsi_async”†”asbuh1hhj 0ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM0h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj 0ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj[0h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj 0ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjh0h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj 0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj0ubje)�”}”(hŒstruct hsi_msg *msg”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj}0ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ0h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj}0ubh)�”}”(hhh]”j5)�”}”(hŒhsi_msg”h]”hŒhsi_msg”…”�”}”(hjŸ0h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjœ0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j¡0Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”jI0Œ c.hsi_async”†”asbuh1hhj}0ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½0h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj}0ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjË0h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj}0ubj5)�”}”(hŒmsg”h]”hŒmsg”…”�”}”(hjØ0h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj}0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj0ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjÎ/h²hh³jà/h´M(ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjÊ/h²hh³jà/h´M(ubah}”(h]”jÅ/ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jà/h´M(hjÇ/h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ(Submit an HSI transfer to the controller”h]”hŒ(Submit an HSI transfer to the controller”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M(hjÿ0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjÇ/h²hh³jà/h´M(ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj1j„j1j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hXî**Parameters** ``struct hsi_client *cl`` HSI client sending the transfer ``struct hsi_msg *msg`` The HSI transfer passed to controller **Description** The HSI message must have the channel, ttype, complete and destructor fields set beforehand. If nents > 0 then the client has to initialize also the scatterlists to point to the buffers to write to or read from. HSI controllers relay on pre-allocated buffers from their clients and they do not allocate buffers on their own. Once the HSI message transfer finishes, the HSI controller calls the complete callback with the status and actual_len fields of the HSI message updated. The complete callback can be called before returning from hsi_async. Returns -errno on failure or 0 on success”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj$1h]”hŒ Parameters”…”�”}”(hj&1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj"1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M,hj1ubjw)�”}”(hhh]”(j|)�”}”(hŒ:``struct hsi_client *cl`` HSI client sending the transfer ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hjC1h]”hŒstruct hsi_client *cl”…”�”}”(hjE1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjA1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M)hj=1ubj’)�”}”(hhh]”hÝ)�”}”(hŒHSI client sending the transfer”h]”hŒHSI client sending the transfer”…”�”}”(hj\1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jX1h´M)hjY1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj=1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jX1h´M)hj:1ubj|)�”}”(hŒ>``struct hsi_msg *msg`` The HSI transfer passed to controller ”h]”(j‚)�”}”(hŒ``struct hsi_msg *msg``”h]”jà)�”}”(hj|1h]”hŒstruct hsi_msg *msg”…”�”}”(hj~1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjz1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M*hjv1ubj’)�”}”(hhh]”hÝ)�”}”(hŒ%The HSI transfer passed to controller”h]”hŒ%The HSI transfer passed to controller”…”�”}”(hj•1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‘1h´M*hj’1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjv1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j‘1h´M*hj:1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhj1ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj·1h]”hŒ Description”…”�”}”(hj¹1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjµ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M,hj1ubhÝ)�”}”(hŒÓThe HSI message must have the channel, ttype, complete and destructor fields set beforehand. If nents > 0 then the client has to initialize also the scatterlists to point to the buffers to write to or read from.”h]”hŒÓThe HSI message must have the channel, ttype, complete and destructor fields set beforehand. If nents > 0 then the client has to initialize also the scatterlists to point to the buffers to write to or read from.”…”�”}”(hjÍ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M+hj1ubhÝ)�”}”(hŒpHSI controllers relay on pre-allocated buffers from their clients and they do not allocate buffers on their own.”h]”hŒpHSI controllers relay on pre-allocated buffers from their clients and they do not allocate buffers on their own.”…”�”}”(hjÜ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M/hj1ubhÝ)�”}”(hŒÝOnce the HSI message transfer finishes, the HSI controller calls the complete callback with the status and actual_len fields of the HSI message updated. The complete callback can be called before returning from hsi_async.”h]”hŒÝOnce the HSI message transfer finishes, the HSI controller calls the complete callback with the status and actual_len fields of the HSI message updated. The complete callback can be called before returning from hsi_async.”…”�”}”(hjë1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M2hj1ubhÝ)�”}”(hŒ)Returns -errno on failure or 0 on success”h]”hŒ)Returns -errno on failure or 0 on success”…”�”}”(hjú1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M7hj1ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_claim_port (C function)”Œc.hsi_claim_port”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ>int hsi_claim_port (struct hsi_client *cl, unsigned int share)”h]”j)�”}”(hŒ=int hsi_claim_port(struct hsi_client *cl, unsigned int share)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hj)2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj%2h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MIubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj82h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj%2h²hh³j72h´MIubj/)�”}”(hŒhsi_claim_port”h]”j5)�”}”(hŒhsi_claim_port”h]”hŒhsi_claim_port”…”�”}”(hjJ2h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjF2ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj%2h²hh³j72h´MIubj_)�”}”(hŒ+(struct hsi_client *cl, unsigned int share)”h]”(je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjf2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjb2ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs2h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjb2ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj„2h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj�2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j†2Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjL2sbŒc.hsi_claim_port”†”asbuh1hhjb2ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤2h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjb2ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj²2h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjb2ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hj¿2h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjb2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj^2ubje)�”}”(hŒunsigned int share”h]”(j )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjØ2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÔ2ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ2h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÔ2ubj )�”}”(hŒint”h]”hŒint”…”�”}”(hjô2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÔ2ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÔ2ubj5)�”}”(hŒshare”h]”hŒshare”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÔ2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj^2ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj%2h²hh³j72h´MIubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj!2h²hh³j72h´MIubah}”(h]”j2ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j72h´MIhj2h²hubja)�”}”(hhh]”hÝ)�”}”(hŒClaim the HSI client's port”h]”hŒClaim the HSI client’s port”…”�”}”(hj:3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MIhj73h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj2h²hh³j72h´MIubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjR3j„jR3j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒç**Parameters** ``struct hsi_client *cl`` HSI client that wants to claim its port ``unsigned int share`` Flag to indicate if the client wants to share the port or not. **Description** Returns -errno on failure, 0 on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj\3h]”hŒ Parameters”…”�”}”(hj^3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjZ3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MMhjV3ubjw)�”}”(hhh]”(j|)�”}”(hŒB``struct hsi_client *cl`` HSI client that wants to claim its port ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj{3h]”hŒstruct hsi_client *cl”…”�”}”(hj}3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjy3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MJhju3ubj’)�”}”(hhh]”hÝ)�”}”(hŒ'HSI client that wants to claim its port”h]”hŒ'HSI client that wants to claim its port”…”�”}”(hj”3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�3h´MJhj‘3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hju3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j�3h´MJhjr3ubj|)�”}”(hŒV``unsigned int share`` Flag to indicate if the client wants to share the port or not. ”h]”(j‚)�”}”(hŒ``unsigned int share``”h]”jà)�”}”(hj´3h]”hŒunsigned int share”…”�”}”(hj¶3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj²3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MKhj®3ubj’)�”}”(hhh]”hÝ)�”}”(hŒ>Flag to indicate if the client wants to share the port or not.”h]”hŒ>Flag to indicate if the client wants to share the port or not.”…”�”}”(hjÍ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÉ3h´MKhjÊ3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj®3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jÉ3h´MKhjr3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjV3ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjï3h]”hŒ Description”…”�”}”(hjñ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjí3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MMhjV3ubhÝ)�”}”(hŒ(Returns -errno on failure, 0 on success.”h]”hŒ(Returns -errno on failure, 0 on success.”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MLhjV3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_release_port (C function)”Œc.hsi_release_port”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ-void hsi_release_port (struct hsi_client *cl)”h]”j)�”}”(hŒ,void hsi_release_port(struct hsi_client *cl)”h]”(j )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj44h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj04h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mhubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC4h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj04h²hh³jB4h´Mhubj/)�”}”(hŒhsi_release_port”h]”j5)�”}”(hŒhsi_release_port”h]”hŒhsi_release_port”…”�”}”(hjU4h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjQ4ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj04h²hh³jB4h´Mhubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjq4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjm4ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~4h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjm4ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj�4h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjŒ4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j‘4Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžjW4sbŒc.hsi_release_port”†”asbuh1hhjm4ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯4h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjm4ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj½4h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjm4ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjÊ4h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjm4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhji4ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj04h²hh³jB4h´Mhubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj,4h²hh³jB4h´Mhubah}”(h]”j'4ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jB4h´Mhhj)4h²hubja)�”}”(hhh]”hÝ)�”}”(hŒRelease the HSI client's port”h]”hŒRelease the HSI client’s port”…”�”}”(hjô4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mhhjñ4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj)4h²hh³jB4h´Mhubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj 5j„j 5j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒX**Parameters** ``struct hsi_client *cl`` HSI client which previously claimed its port”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj5h]”hŒ Parameters”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mlhj5ubjw)�”}”(hhh]”j|)�”}”(hŒF``struct hsi_client *cl`` HSI client which previously claimed its port”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj55h]”hŒstruct hsi_client *cl”…”�”}”(hj75h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj35ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mnhj/5ubj’)�”}”(hhh]”hÝ)�”}”(hŒ,HSI client which previously claimed its port”h]”hŒ,HSI client which previously claimed its port”…”�”}”(hjN5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MihjK5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj/5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jJ5h´Mnhj,5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ$hsi_register_port_event (C function)”Œc.hsi_register_port_event”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒhint hsi_register_port_event (struct hsi_client *cl, void (*handler)(struct hsi_client *, unsigned long))”h]”j)�”}”(hŒfint hsi_register_port_event(struct hsi_client *cl, void (*handler)(struct hsi_client*, unsigned long))”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj‹5h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´Mˆubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž5h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj‹5h²hh³j�5h´Mˆubj/)�”}”(hŒhsi_register_port_event”h]”j5)�”}”(hŒhsi_register_port_event”h]”hŒhsi_register_port_event”…”�”}”(hj°5h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¬5ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj‹5h²hh³j�5h´Mˆubj_)�”}”(hŒK(struct hsi_client *cl, void (*handler)(struct hsi_client*, unsigned long))”h]”(je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjÌ5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÈ5ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ5h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÈ5ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjê5h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjç5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jì5Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj²5sbŒc.hsi_register_port_event”†”asbuh1hhjÈ5ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÈ5ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjÈ5ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hj%6h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÈ5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjÄ5ubje)�”}”(hŒ2void (*handler)(struct hsi_client*, unsigned long)”h]”(j )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj>6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj:6ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL6h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj:6ubj¿)�”}”(hŒ(”h]”hŒ(”…”�”}”(hjZ6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjh6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubj5)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hju6h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj:6ubj¿)�”}”(hŒ)”h]”hŒ)”…”�”}”(hjƒ6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubj¿)�”}”(hj\6h]”hŒ(”…”�”}”(hj‘6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubj )�”}”(hjh]”hŒstruct”…”�”}”(hjž6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj:6ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«6h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj:6ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hj¼6h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj¹6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j¾6Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j6Œc.hsi_register_port_event”†”asbuh1hhj:6ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjÚ6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubj¿)�”}”(hŒ,”h]”hŒ,”…”�”}”(hjç6h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõ6h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj:6ubj )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj:6ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj:6ubj )�”}”(hŒlong”h]”hŒlong”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj:6ubj¿)�”}”(hj…6h]”hŒ)”…”�”}”(hj-7h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj:6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjÄ5ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj‹5h²hh³j�5h´Mˆubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj‡5h²hh³j�5h´Mˆubah}”(h]”j‚5ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j�5h´Mˆhj„5h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ(Register a client to receive port events”h]”hŒ(Register a client to receive port events”…”�”}”(hjV7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MˆhjS7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj„5h²hh³j�5h´Mˆubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒjn7j„jn7j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hX›**Parameters** ``struct hsi_client *cl`` HSI client that wants to receive port events ``void (*handler)(struct hsi_client *, unsigned long)`` Event handler callback **Description** Clients should register a callback to be able to receive events from the ports. Registration should happen after claiming the port. The handler can be called in interrupt context. Returns -errno on error, or 0 on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjx7h]”hŒ Parameters”…”�”}”(hjz7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjv7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MŒhjr7ubjw)�”}”(hhh]”(j|)�”}”(hŒG``struct hsi_client *cl`` HSI client that wants to receive port events ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj—7h]”hŒstruct hsi_client *cl”…”�”}”(hj™7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj•7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M‰hj‘7ubj’)�”}”(hhh]”hÝ)�”}”(hŒ,HSI client that wants to receive port events”h]”hŒ,HSI client that wants to receive port events”…”�”}”(hj°7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¬7h´M‰hj­7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‘7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j¬7h´M‰hjŽ7ubj|)�”}”(hŒO``void (*handler)(struct hsi_client *, unsigned long)`` Event handler callback ”h]”(j‚)�”}”(hŒ7``void (*handler)(struct hsi_client *, unsigned long)``”h]”jà)�”}”(hjÐ7h]”hŒ3void (*handler)(struct hsi_client *, unsigned long)”…”�”}”(hjÒ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjÎ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MŠhjÊ7ubj’)�”}”(hhh]”hÝ)�”}”(hŒEvent handler callback”h]”hŒEvent handler callback”…”�”}”(hjé7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jå7h´MŠhjæ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÊ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jå7h´MŠhjŽ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjr7ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj 8h]”hŒ Description”…”�”}”(hj 8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj 8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MŒhjr7ubhÝ)�”}”(hŒ³Clients should register a callback to be able to receive events from the ports. Registration should happen after claiming the port. The handler can be called in interrupt context.”h]”hŒ³Clients should register a callback to be able to receive events from the ports. Registration should happen after claiming the port. The handler can be called in interrupt context.”…”�”}”(hj!8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M‹hjr7ubhÝ)�”}”(hŒ)Returns -errno on error, or 0 on success.”h]”hŒ)Returns -errno on error, or 0 on success.”…”�”}”(hj08h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M�hjr7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ&hsi_unregister_port_event (C function)”Œc.hsi_unregister_port_event”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ5int hsi_unregister_port_event (struct hsi_client *cl)”h]”j)�”}”(hŒ4int hsi_unregister_port_event(struct hsi_client *cl)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hj_8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj[8h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¤ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn8h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj[8h²hh³jm8h´M¤ubj/)�”}”(hŒhsi_unregister_port_event”h]”j5)�”}”(hŒhsi_unregister_port_event”h]”hŒhsi_unregister_port_event”…”�”}”(hj€8h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj|8ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj[8h²hh³jm8h´M¤ubj_)�”}”(hŒ(struct hsi_client *cl)”h]”je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjœ8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj˜8ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©8h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj˜8ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjº8h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj·8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”j¼8Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj‚8sbŒc.hsi_unregister_port_event”†”asbuh1hhj˜8ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚ8h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj˜8ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjè8h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj˜8ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hjõ8h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj˜8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj”8ubah}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj[8h²hh³jm8h´M¤ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjW8h²hh³jm8h´M¤ubah}”(h]”jR8ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jm8h´M¤hjT8h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ'Stop receiving port events for a client”h]”hŒ'Stop receiving port events for a client”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¤hj9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjT8h²hh³jm8h´M¤ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj79j„j79j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hŒæ**Parameters** ``struct hsi_client *cl`` HSI client that wants to stop receiving port events **Description** Clients should call this function before releasing their associated port. Returns -errno on error, or 0 on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hjA9h]”hŒ Parameters”…”�”}”(hjC9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj?9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¨hj;9ubjw)�”}”(hhh]”j|)�”}”(hŒN``struct hsi_client *cl`` HSI client that wants to stop receiving port events ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj`9h]”hŒstruct hsi_client *cl”…”�”}”(hjb9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj^9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¥hjZ9ubj’)�”}”(hhh]”hÝ)�”}”(hŒ3HSI client that wants to stop receiving port events”h]”hŒ3HSI client that wants to stop receiving port events”…”�”}”(hjy9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ju9h´M¥hjv9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjZ9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³ju9h´M¥hjW9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jvhj;9ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hj›9h]”hŒ Description”…”�”}”(hj�9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj™9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M§hj;9ubhÝ)�”}”(hŒIClients should call this function before releasing their associated port.”h]”hŒIClients should call this function before releasing their associated port.”…”�”}”(hj±9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¦hj;9ubhÝ)�”}”(hŒ)Returns -errno on error, or 0 on success.”h]”hŒ)Returns -errno on error, or 0 on success.”…”�”}”(hjÀ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M©hj;9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒhsi_event (C function)”Œ c.hsi_event”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒ:int hsi_event (struct hsi_port *port, unsigned long event)”h]”j)�”}”(hŒ9int hsi_event(struct hsi_port *port, unsigned long event)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hjï9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjë9h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¼ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ9h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjë9h²hh³jý9h´M¼ubj/)�”}”(hŒ hsi_event”h]”j5)�”}”(hŒ hsi_event”h]”hŒ hsi_event”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj :ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hjë9h²hh³jý9h´M¼ubj_)�”}”(hŒ,(struct hsi_port *port, unsigned long event)”h]”(je)�”}”(hŒstruct hsi_port *port”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hj,:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj(:ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9:h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj(:ubh)�”}”(hhh]”j5)�”}”(hŒhsi_port”h]”hŒhsi_port”…”�”}”(hjJ:h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjG:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”jL:Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj:sbŒ c.hsi_event”†”asbuh1hhj(:ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj:h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj(:ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjx:h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hj(:ubj5)�”}”(hŒport”h]”hŒport”…”�”}”(hj…:h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj(:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj$:ubje)�”}”(hŒunsigned long event”h]”(j )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjž:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjš:ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬:h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjš:ubj )�”}”(hŒlong”h]”hŒlong”…”�”}”(hjº:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjš:ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ:h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjš:ubj5)�”}”(hŒevent”h]”hŒevent”…”�”}”(hjÖ:h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjš:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhj$:ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hjë9h²hh³jý9h´M¼ubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThjç9h²hh³jý9h´M¼ubah}”(h]”jâ9ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³jý9h´M¼hjä9h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ"Notifies clients about port events”h]”hŒ"Notifies clients about port events”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¼hjý:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjä9h²hh³jý9h´M¼ubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj;j„j;j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hXá**Parameters** ``struct hsi_port *port`` Port where the event occurred ``unsigned long event`` The event type **Description** Clients should not be concerned about wake line behavior. However, due to a race condition in HSI HW protocol, clients need to be notified about wake line changes, so they can implement a workaround for it. Events: HSI_EVENT_START_RX - Incoming wake line high HSI_EVENT_STOP_RX - Incoming wake line down Returns -errno on error, or 0 on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj";h]”hŒ Parameters”…”�”}”(hj$;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÀhj;ubjw)�”}”(hhh]”(j|)�”}”(hŒ8``struct hsi_port *port`` Port where the event occurred ”h]”(j‚)�”}”(hŒ``struct hsi_port *port``”h]”jà)�”}”(hjA;h]”hŒstruct hsi_port *port”…”�”}”(hjC;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj?;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M½hj;;ubj’)�”}”(hhh]”hÝ)�”}”(hŒPort where the event occurred”h]”hŒPort where the event occurred”…”�”}”(hjZ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jV;h´M½hjW;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj;;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jV;h´M½hj8;ubj|)�”}”(hŒ'``unsigned long event`` The event type ”h]”(j‚)�”}”(hŒ``unsigned long event``”h]”jà)�”}”(hjz;h]”hŒunsigned long event”…”�”}”(hj|;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjx;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¾hjt;ubj’)�”}”(hhh]”hÝ)�”}”(hŒThe event type”h]”hŒThe event type”…”�”}”(hj“;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�;h´M¾hj�;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjt;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j�;h´M¾hj8;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhj;ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjµ;h]”hŒ Description”…”�”}”(hj·;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj³;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÀhj;ubhÝ)�”}”(hŒÎClients should not be concerned about wake line behavior. However, due to a race condition in HSI HW protocol, clients need to be notified about wake line changes, so they can implement a workaround for it.”h]”hŒÎClients should not be concerned about wake line behavior. However, due to a race condition in HSI HW protocol, clients need to be notified about wake line changes, so they can implement a workaround for it.”…”�”}”(hjË;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´M¿hj;ubhÝ)�”}”(hŒ`Events: HSI_EVENT_START_RX - Incoming wake line high HSI_EVENT_STOP_RX - Incoming wake line down”h]”hŒ`Events: HSI_EVENT_START_RX - Incoming wake line high HSI_EVENT_STOP_RX - Incoming wake line down”…”�”}”(hjÚ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÃhj;ubhÝ)�”}”(hŒ)Returns -errno on error, or 0 on success.”h]”hŒ)Returns -errno on error, or 0 on success.”…”�”}”(hjé;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÇhj;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubjê)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jöŒ'hsi_get_channel_id_by_name (C function)”Œc.hsi_get_channel_id_by_name”hNt”auh1jéhjØh²hh³Nh´Nubjû)�”}”(hhh]”(j)�”}”(hŒBint hsi_get_channel_id_by_name (struct hsi_client *cl, char *name)”h]”j)�”}”(hŒAint hsi_get_channel_id_by_name(struct hsi_client *cl, char *name)”h]”(j )�”}”(hŒint”h]”hŒint”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj<h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÑubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'<h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhj<h²hh³j&<h´MÑubj/)�”}”(hŒhsi_get_channel_id_by_name”h]”j5)�”}”(hŒhsi_get_channel_id_by_name”h]”hŒhsi_get_channel_id_by_name”…”�”}”(hj9<h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hj5<ubah}”(h]”h ]”(jGjHeh"]”h$]”h&]”jjuh1j.hj<h²hh³j&<h´MÑubj_)�”}”(hŒ#(struct hsi_client *cl, char *name)”h]”(je)�”}”(hŒstruct hsi_client *cl”h]”(j )�”}”(hjh]”hŒstruct”…”�”}”(hjU<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjQ<ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb<h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjQ<ubh)�”}”(hhh]”j5)�”}”(hŒ hsi_client”h]”hŒ hsi_client”…”�”}”(hjs<h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjp<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j}Œreftype”jžŒ reftarget”ju<Œmodname”NŒ classname”Nj¢j¥)�”}”j¨]”j«)�”}”jžj;<sbŒc.hsi_get_channel_id_by_name”†”asbuh1hhjQ<ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“<h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjQ<ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hj¡<h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjQ<ubj5)�”}”(hŒcl”h]”hŒcl”…”�”}”(hj®<h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjQ<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjM<ubje)�”}”(hŒ char *name”h]”(j )�”}”(hŒchar”h]”hŒchar”…”�”}”(hjÇ<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÃ<ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ<h²hh³Nh´Nubah}”(h]”h ]”j*ah"]”h$]”h&]”uh1jhjÃ<ubj¿)�”}”(hjÂh]”hŒ*”…”�”}”(hjã<h²hh³Nh´Nubah}”(h]”h ]”jËah"]”h$]”h&]”uh1j¾hjÃ<ubj5)�”}”(hŒname”h]”hŒname”…”�”}”(hjð<h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j4hjÃ<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjjuh1jdhjM<ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j^hj<h²hh³j&<h´MÑubeh}”(h]”h ]”h"]”h$]”h&]”jjjRˆuh1jjSjThj<h²hh³j&<h´MÑubah}”(h]”j <ah ]”(jXjYeh"]”h$]”h&]”j]ˆj^)j_huh1jÿh³j&<h´MÑhj <h²hubja)�”}”(hhh]”hÝ)�”}”(hŒ"acquire channel id by channel name”h]”hŒ"acquire channel id by channel name”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÑhj=h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj <h²hh³j&<h´MÑubeh}”(h]”h ]”(j}Œfunction”eh"]”h$]”h&]”j‚j}jƒj2=j„j2=j…‰j†‰j‡‰uh1júh²hhjØh³Nh´Nubj‰)�”}”(hXx**Parameters** ``struct hsi_client *cl`` HSI client, which uses the channel ``char *name`` name the channel is known under **Description** Clients can call this function to get the hsi channel ids similar to requesting IRQs or GPIOs by name. This function assumes the same channel configuration is used for RX and TX. Returns -errno on error or channel id on success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j“)�”}”(hj<=h]”hŒ Parameters”…”�”}”(hj>=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hj:=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÕhj6=ubjw)�”}”(hhh]”(j|)�”}”(hŒ=``struct hsi_client *cl`` HSI client, which uses the channel ”h]”(j‚)�”}”(hŒ``struct hsi_client *cl``”h]”jà)�”}”(hj[=h]”hŒstruct hsi_client *cl”…”�”}”(hj]=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhjY=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÒhjU=ubj’)�”}”(hhh]”hÝ)�”}”(hŒ"HSI client, which uses the channel”h]”hŒ"HSI client, which uses the channel”…”�”}”(hjt=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jp=h´MÒhjq=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjU=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³jp=h´MÒhjR=ubj|)�”}”(hŒ/``char *name`` name the channel is known under ”h]”(j‚)�”}”(hŒ``char *name``”h]”jà)�”}”(hj”=h]”hŒ char *name”…”�”}”(hj–=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jßhj’=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÓhjŽ=ubj’)�”}”(hhh]”hÝ)�”}”(hŒname the channel is known under”h]”hŒname the channel is known under”…”�”}”(hj­=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j©=h´MÓhjª=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŽ=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j{h³j©=h´MÓhjR=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhj6=ubhÝ)�”}”(hŒ**Description**”h]”j“)�”}”(hjÏ=h]”hŒ Description”…”�”}”(hjÑ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j’hjÍ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÕhj6=ubhÝ)�”}”(hŒ²Clients can call this function to get the hsi channel ids similar to requesting IRQs or GPIOs by name. This function assumes the same channel configuration is used for RX and TX.”h]”hŒ²Clients can call this function to get the hsi channel ids similar to requesting IRQs or GPIOs by name. This function assumes the same channel configuration is used for RX and TX.”…”�”}”(hjå=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MÔhj6=ubhÝ)�”}”(hŒ1Returns -errno on error or channel id on success.”h]”hŒ1Returns -errno on error or channel id on success.”…”�”}”(hjô=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/driver-api/hsi:86: ./drivers/hsi/hsi_core.c”h´MØhj6=ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jˆhjØh²hh³Nh´Nubeh}”(h]”Œthe-kernel-hsi-api”ah ]”h"]”Œthe kernel hsi api”ah$]”h&]”uh1hµhh·h²hh³hÊh´KQubeh}”(h]”Œ+high-speed-synchronous-serial-interface-hsi”ah ]”h"]”Œ-high speed synchronous serial interface (hsi)”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j=>Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j>j>jjjTjQjÕjÒj>j >uŒ nametypes”}”(j>‰j‰jT‰jÕ‰j>‰uh}”(j>h·jhËjQj"jÒjWj >jØjøjjejjjýjj\ ja j× jÜ jà jå j"j'jjjýjj­j²jJjOjÚjßjjjoj”j™j¾jÃj?!jD!jÀ"jÅ"j$j $jv%j{%j÷&jü&jx(j}(jù)jþ)j,j,j˜-j�-jÅ/jÊ/j2j!2j'4j,4j‚5j‡5jR8jW8jâ9jç9j <j<uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”•§KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.