<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/tty/hvc, branch v3.1</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/tty/hvc?h=v3.1</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/tty/hvc?h=v3.1'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-07-20T08:01:48Z</updated>
<entry>
<title>powerpc/pseries: Fix hvc_vio.c build due to recent changes</title>
<updated>2011-07-20T08:01:48Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-07-20T08:01:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f7723f0eaf53d51ee54374116b25ac33e0be8542'/>
<id>urn:sha1:f7723f0eaf53d51ee54374116b25ac33e0be8542</id>
<content type='text'>
For some reason I didn't notice the failure in my test builds,
probably lacking caffeine or something...

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>hvc_console: Add kdb support</title>
<updated>2011-07-19T05:13:07Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2011-07-12T19:44:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=762e77ae7dd055d0b77e0ad34d87db7416df109e'/>
<id>urn:sha1:762e77ae7dd055d0b77e0ad34d87db7416df109e</id>
<content type='text'>
Add poll_get_char and poll_put_char for kdb. Enable kdb at boot with:

kgdboc=hvc0

or at runtime with:

echo hvc0 &gt; /sys/module/kgdboc/parameters/kgdboc

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/pseries: Fix hvterm_raw_get_chars to accept &lt; 16 chars, fixing xmon</title>
<updated>2011-07-19T05:13:07Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2011-07-12T19:19:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=19df9abdd30a0448e5940c6aa3527096bb69aca7'/>
<id>urn:sha1:19df9abdd30a0448e5940c6aa3527096bb69aca7</id>
<content type='text'>
commit 4d2bb3f50036 (powerpc/pseries: Re-implement HVSI as part of
hvc_vio) changed udbg_getc to be based on hvterm_raw_get_chars.
Unfortunately hvterm_raw_get_chars returns -EAGAIN if you ask
for anything less than 16 characters. As a result xmon no longer
accepts input and prints a stream of junk to the screen.

The recent change highlights a problem that xmon on pseries VIO
has had all along, that it can drop input characters. The issue
is the hypervisor call does not take a count argument and can
return up to 16 characters.

This patch adds a per vterm buffer that we copy input data into
and give it out as requested.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>hvc_console: Improve tty/console put_chars handling</title>
<updated>2011-07-19T05:13:05Z</updated>
<author>
<name>Hendrik Brueckner</name>
<email>brueckner@linux.vnet.ibm.com</email>
</author>
<published>2011-07-05T21:50:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8c2381af0d3ef62a681dac5a141b6dabb27bf2e1'/>
<id>urn:sha1:8c2381af0d3ef62a681dac5a141b6dabb27bf2e1</id>
<content type='text'>
Currently, the hvc_console_print() function drops console output if the
hvc backend's put_chars() returns 0.  This patch changes this behavior
to allow a retry through returning -EAGAIN.

This change also affects the hvc_push() function.  Both functions are
changed to handle -EAGAIN and to retry the put_chars() operation.

If a hvc backend returns -EAGAIN, the retry handling differs:

  - hvc_console_print() spins to write the complete console output.
  - hvc_push() behaves the same way as for returning 0.

Now hvc backends can indirectly control the way how console output is
handled through the hvc console layer.

Signed-off-by: Hendrik Brueckner &lt;brueckner@linux.vnet.ibm.com&gt;
Acked-by: Anton Blanchard &lt;anton@samba.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/hvsi: Fix conflict with old HVSI driver</title>
<updated>2011-07-01T03:10:21Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-07-01T03:10:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=87fa35dd881fd61a2a8166892366f2c22c34a1fa'/>
<id>urn:sha1:87fa35dd881fd61a2a8166892366f2c22c34a1fa</id>
<content type='text'>
A mix of think &amp; mismerge on my side caused a problem where both the
new hvsi_lib and the old hvsi driver gets compiled and try to define
symbols with the same name.

This fixes it by renaming the hvsi_lib exported symbols.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/pseries: Move hvsi support into a library</title>
<updated>2011-06-29T07:48:37Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-04-29T06:44:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=17bdc6c0e979ae61879806e4dd93ec3b169d0931'/>
<id>urn:sha1:17bdc6c0e979ae61879806e4dd93ec3b169d0931</id>
<content type='text'>
This will allow a different backend to share it

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/pseries: Re-implement HVSI as part of hvc_vio</title>
<updated>2011-06-29T07:48:35Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-05-12T03:46:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4d2bb3f5003617cb42b89faefd0009c505c3abd5'/>
<id>urn:sha1:4d2bb3f5003617cb42b89faefd0009c505c3abd5</id>
<content type='text'>
On pseries machines, consoles are provided by the hypervisor using
a low level get_chars/put_chars type interface. However, this is
really just a transport to the service processor which implements
them either as "raw" console (networked consoles, HMC, ...) or as
"hvsi" serial ports.

The later is a simple packet protocol on top of the raw character
interface that is supposed to convey additional "serial port" style
semantics. In practice however, all it does is provide a way to
read the CD line and set/clear our DTR line, that's it.

We currently implement the "raw" protocol as an hvc console backend
(/dev/hvcN) and the "hvsi" protocol using a separate tty driver
(/dev/hvsi0).

However this is quite impractical. The arbitrary difference between
the two type of devices has been a major source of user (and distro)
confusion. Additionally, there's an additional mini -hvsi implementation
in the pseries platform code for our low level debug console and early
boot kernel messages, which means code duplication, though that low
level variant is impractical as it's incapable of doing the initial
protocol negociation to establish the link to the FSP.

This essentially replaces the dedicated hvsi driver and the platform
udbg code completely by extending the existing hvc_vio backend used
in "raw" mode so that:

 - It now supports HVSI as well
 - We add support for hvc backend providing tiocm{get,set}
 - It also provides a udbg interface for early debug and boot console

This is overall less code, though this will only be obvious once we
remove the old "hvsi" driver, which is still available for now. When
the old driver is enabled, the new code still kicks in for the low
level udbg console, replacing the old mini implementation in the platform
code, it just doesn't provide the higher level "hvc" interface.

In addition to producing generally simler code, this has several benefits
over our current situation:

 - The user/distro only has to deal with /dev/hvcN for the hypervisor
console, avoiding all sort of confusion that has plagued us in the past

 - The tty, kernel and low level debug console all use the same code
base which supports the full protocol establishment process, thus the
console is now available much earlier than it used to be with the
old HVSI driver. The kernel console works much earlier and udbg is
available much earlier too. Hackers can enable a hard coded very-early
debug console as well that works with HVSI (previously that was only
supported for the "raw" mode).

I've tried to keep the same semantics as hvsi relative to how I react
to things like CD changes, with some subtle differences though:

 - I clear DTR on close if HUPCL is set

 - Current hvsi triggers a hangup if it detects a up-&gt;down transition
   on CD (you can still open a console with CD down). My new implementation
   triggers a hangup if the link to the FSP is severed, and severs it upon
   detecting a up-&gt;down transition on CD.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/pseries: Factor HVSI header struct in packet definitions</title>
<updated>2011-06-29T07:48:30Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-06-16T15:08:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=048bee7718bb3532aa96d0ce8572cced2ea951e6'/>
<id>urn:sha1:048bee7718bb3532aa96d0ce8572cced2ea951e6</id>
<content type='text'>
Embed the struct hvsi_header in the various packet definitions
rather than open coding it multiple times. Will help provide
stronger type checking.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/hvsi: Move HVSI protocol definitions to a header file</title>
<updated>2011-06-29T07:48:28Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-06-16T15:08:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=725e789f228641fdfafcd65458f0ac78b87acc5a'/>
<id>urn:sha1:725e789f228641fdfafcd65458f0ac78b87acc5a</id>
<content type='text'>
This moves various HVSI protocol definitions from the hvsi.c
driver to a header file that can be used later on by a udbg
implementation

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>Fix common misspellings</title>
<updated>2011-03-31T14:26:23Z</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-03-31T01:57:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=25985edcedea6396277003854657b5f3cb31a628'/>
<id>urn:sha1:25985edcedea6396277003854657b5f3cb31a628</id>
<content type='text'>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
</entry>
</feed>
