<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/tty/serial/msm_serial.c, branch linux-4.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2017-05-16T03:18:29Z</updated>
<entry>
<title>tty: serial: msm: Fix module autoload</title>
<updated>2017-05-16T03:18:29Z</updated>
<author>
<name>Javier Martinez Canillas</name>
<email>javier@osg.samsung.com</email>
</author>
<published>2017-01-02T14:57:20Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c2e65cde1bd74a09716dae2338a3c6ef29d23fe7'/>
<id>urn:sha1:c2e65cde1bd74a09716dae2338a3c6ef29d23fe7</id>
<content type='text'>
[ Upstream commit abe81f3b8ed2996e1712d26d38ff6b73f582c616 ]

If the driver is built as a module, autoload won't work because the module
alias information is not filled. So user-space can't match the registered
device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/tty/serial/msm_serial.ko | grep alias
$

After this patch:

$ modinfo drivers/tty/serial/msm_serial.ko | grep alias
alias:          of:N*T*Cqcom,msm-uartdmC*
alias:          of:N*T*Cqcom,msm-uartdm
alias:          of:N*T*Cqcom,msm-uartC*
alias:          of:N*T*Cqcom,msm-uart

Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Acked-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>tty: serial: msm_serial: Remove console unregistration from driver exit.</title>
<updated>2015-02-02T18:11:25Z</updated>
<author>
<name>Pramod Gurav</name>
<email>pramod.gurav@smartplayin.com</email>
</author>
<published>2015-01-12T13:52:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2f7f558c222bc0ed617aa9888d0043a9aeeba253'/>
<id>urn:sha1:2f7f558c222bc0ed617aa9888d0043a9aeeba253</id>
<content type='text'>
unregister_console() will be called from uart_remove_one_port() while
removing the platform driver. So not necessary to call it in driver
exit path.

Signed-off-by: Pramod Gurav &lt;pramod.gurav@smartplayin.com&gt;
Reviewed-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: msm_serial: code cleanup in msm_console_setup</title>
<updated>2015-02-02T18:11:25Z</updated>
<author>
<name>Pramod Gurav</name>
<email>pramod.gurav@smartplayin.com</email>
</author>
<published>2015-01-12T13:45:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4daba33466a81197e65c1a86cc1e1d1ca4e70939'/>
<id>urn:sha1:4daba33466a81197e65c1a86cc1e1d1ca4e70939</id>
<content type='text'>
The change does following:
 - baud, flow, bits, parity were being overwritten as they were
   being reinitialized after parsing.  Initialize them when they are
   declared so that user provided setting are not overwritten.
 - msm_set_baud_rate() is anyway called in uart_set_options when it calls
   msm_set_termios(). msm_reset() is called when we change the baud rate.
   Hence doing away with both of these calls.
 - CR_CMD_PROTECTION_EN and CR_TX_ENABLE settings are done in msm_set_baud_rate.
   So do away with this here.

Signed-off-by: Pramod Gurav &lt;pramod.gurav@smartplayin.com&gt;
Reviewed-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core</title>
<updated>2014-12-15T00:10:09Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-12-15T00:10:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e6b5be2be4e30037eb551e0ed09dd97bd00d85d3'/>
<id>urn:sha1:e6b5be2be4e30037eb551e0ed09dd97bd00d85d3</id>
<content type='text'>
Pull driver core update from Greg KH:
 "Here's the set of driver core patches for 3.19-rc1.

  They are dominated by the removal of the .owner field in platform
  drivers.  They touch a lot of files, but they are "simple" changes,
  just removing a line in a structure.

  Other than that, a few minor driver core and debugfs changes.  There
  are some ath9k patches coming in through this tree that have been
  acked by the wireless maintainers as they relied on the debugfs
  changes.

  Everything has been in linux-next for a while"

* tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
  Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
  fs: debugfs: add forward declaration for struct device type
  firmware class: Deletion of an unnecessary check before the function call "vunmap"
  firmware loader: fix hung task warning dump
  devcoredump: provide a one-way disable function
  device: Add dev_&lt;level&gt;_once variants
  ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
  ath: use seq_file api for ath9k debugfs files
  debugfs: add helper function to create device related seq_file
  drivers/base: cacheinfo: remove noisy error boot message
  Revert "core: platform: add warning if driver has no owner"
  drivers: base: support cpu cache information interface to userspace via sysfs
  drivers: base: add cpu_device_create to support per-cpu devices
  topology: replace custom attribute macros with standard DEVICE_ATTR*
  cpumask: factor out show_cpumap into separate helper function
  driver core: Fix unbalanced device reference in drivers_probe
  driver core: fix race with userland in device_add()
  sysfs/kernfs: make read requests on pre-alloc files use the buffer.
  sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
  fs: sysfs: return EGBIG on write if offset is larger than file size
  ...
</content>
</entry>
<entry>
<title>tty: serial: msm_serial: Don't require DT aliases</title>
<updated>2014-11-24T19:28:23Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-11-14T18:39:21Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7920408b0c8292831f064ea33f56aa307b221a2c'/>
<id>urn:sha1:7920408b0c8292831f064ea33f56aa307b221a2c</id>
<content type='text'>
If there isn't a DT alias then of_alias_get_id() will return
-ENODEV. This will cause the msm_serial driver to fail probe,
when we want to keep the previous behavior where we generated a
dynamic line number at probe time. Restore this behavior by
generating a dynamic id if the line number is still negative
after checking for an alias or in the non-DT case looking at the
.id field of the platform device.

Reported-by: Kevin Hilman &lt;khilman@kernel.org&gt;
Tested-by: Kevin Hilman &lt;khilman@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: msm_serial: Use DT aliases</title>
<updated>2014-11-06T22:57:23Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-10-23T00:33:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=97f754710304382607417c700476007443cd96a4'/>
<id>urn:sha1:97f754710304382607417c700476007443cd96a4</id>
<content type='text'>
We rely on probe order of this driver to determine the line number for
the uart port. This makes it impossible to know the line number
when these devices are populated via DT. Use the DT alias
mechanism to assign the line based on the aliases node.

Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: msm: Reset uartdm after baud rate change</title>
<updated>2014-11-06T22:57:22Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-10-30T01:47:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a12f1b406f2d3c3e3bba5300b6e420d004ca263b'/>
<id>urn:sha1:a12f1b406f2d3c3e3bba5300b6e420d004ca263b</id>
<content type='text'>
We need to issue a reset if we ever change the value of the IPR
register on DM hardware. If we don't reset the hardware the RX
stale interrupt never triggers and the only way to trigger an RX
handling event is by filling up the fifo. This causes things like
getty to not work so well considering it might change the baud
rate a few times. Fix this by moving the reset on startup and any
reprogramming required after the reset to be after we change the
baud rate.

Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: msm: Support sysrq on uartDM devices</title>
<updated>2014-11-06T22:57:22Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-10-29T18:14:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0896d4d4fb162297d7199410bae386a96a2e473b'/>
<id>urn:sha1:0896d4d4fb162297d7199410bae386a96a2e473b</id>
<content type='text'>
To properly support sysrq on uartDM hardware we need to properly
handle break characters. With the DM hardware the fifo can pack 4
characters at a time, where a break is indicated by an all zero
byte. Unfortunately, we can't differentiate between an all zero
byte for a break and an all zero byte of data, so try and do as
best we can. First unmask the RX break start interrupt and record
the interrupt when it arrives. Then while processing the fifo,
detect the break by searching for an all zero character as long
as we recently received an RX break start interrupt. This should
make sysrq work fairly well.

Cc: Frank Rowand &lt;frank.rowand@sonymobile.com&gt;
Cc: Daniel Thompson &lt;daniel.thompson@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: msm: Fix sysrq spinlock recursion on non-DM</title>
<updated>2014-11-06T22:57:22Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-10-29T18:14:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=660beb0e94ad81cfcb6b7846606c0378b0152064'/>
<id>urn:sha1:660beb0e94ad81cfcb6b7846606c0378b0152064</id>
<content type='text'>
The handle_rx() path calls uart_handle_sysrq_char() with the port
lock held. This causes a spinlock recursion. Release and
reacquire the lock here to avoid this.

BUG: spinlock recursion on CPU#0, swapper/0
 lock: msm_uart_ports+0x1e0/0x2d0, .magic: dead4ead, .owner: swapper/0, .owner_cpu: 0
CPU: 0 PID: 0 Comm: swapper Not tainted 3.17.0-rc7-00012-gb38ee8265941 #69
[&lt;c0013964&gt;] (unwind_backtrace) from [&lt;c0011f74&gt;] (show_stack+0x10/0x14)
[&lt;c0011f74&gt;] (show_stack) from [&lt;c004ed1c&gt;] (do_raw_spin_lock+0x11c/0x13c)
[&lt;c004ed1c&gt;] (do_raw_spin_lock) from [&lt;c02d44c0&gt;] (msm_console_write+0x78/0x188)
[&lt;c02d44c0&gt;] (msm_console_write) from [&lt;c0052880&gt;] (call_console_drivers.constprop.22+0xb4/0x144)
[&lt;c0052880&gt;] (call_console_drivers.constprop.22) from [&lt;c0053570&gt;] (console_unlock+0x27c/0x4ac)
[&lt;c0053570&gt;] (console_unlock) from [&lt;c0053bb4&gt;] (vprintk_emit+0x1f4/0x5a8)
[&lt;c0053bb4&gt;] (vprintk_emit) from [&lt;c04ad0ac&gt;] (printk+0x30/0x40)
[&lt;c04ad0ac&gt;] (printk) from [&lt;c02c2990&gt;] (__handle_sysrq+0x58/0x1b8)
[&lt;c02c2990&gt;] (__handle_sysrq) from [&lt;c02d41b0&gt;] (msm_irq+0x694/0x6f8)
[&lt;c02d41b0&gt;] (msm_irq) from [&lt;c0055740&gt;] (handle_irq_event_percpu+0x58/0x270)
[&lt;c0055740&gt;] (handle_irq_event_percpu) from [&lt;c0055994&gt;] (handle_irq_event+0x3c/0x5c)
[&lt;c0055994&gt;] (handle_irq_event) from [&lt;c0057e84&gt;] (handle_level_irq+0x9c/0x138)
[&lt;c0057e84&gt;] (handle_level_irq) from [&lt;c005509c&gt;] (generic_handle_irq+0x24/0x38)
[&lt;c005509c&gt;] (generic_handle_irq) from [&lt;c000f730&gt;] (handle_IRQ+0x44/0xb0)
[&lt;c000f730&gt;] (handle_IRQ) from [&lt;c0008518&gt;] (msm_vic_handle_irq+0x44/0x64)
[&lt;c0008518&gt;] (msm_vic_handle_irq) from [&lt;c04b5ac4&gt;] (__irq_svc+0x44/0x7c)
Exception stack(0xc0719f68 to 0xc0719fb0)
9f60:                   00000001 00000001 00000000 c0722938 c0718000 c0769acc
9f80: 00000000 c0720098 c0769305 4117b362 c0769acc 00000000 01000000 c0719fb0
9fa0: c004cab0 c000f880 20000013 ffffffff
[&lt;c04b5ac4&gt;] (__irq_svc) from [&lt;c000f880&gt;] (arch_cpu_idle+0x20/0x30)
[&lt;c000f880&gt;] (arch_cpu_idle) from [&lt;c004691c&gt;] (cpu_startup_entry+0xf4/0x23c)
[&lt;c004691c&gt;] (cpu_startup_entry) from [&lt;c06d8b70&gt;] (start_kernel+0x32c/0x394)

Cc: Frank Rowand &lt;frank.rowand@sonymobile.com&gt;
Cc: Daniel Thompson &lt;daniel.thompson@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: drop owner assignment from platform_drivers</title>
<updated>2014-10-20T14:21:45Z</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa@the-dreams.de</email>
</author>
<published>2014-10-20T14:21:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9144b3cded04a05d4b4e18dc9dcfb5b8ada3f2fc'/>
<id>urn:sha1:9144b3cded04a05d4b4e18dc9dcfb5b8ada3f2fc</id>
<content type='text'>
A platform_driver does not need to set an owner, it will be populated by the
driver core.

Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
</feed>
