Brian Swetland [Fri, 17 Jul 2009 12:45:17 +0000 (14:45 +0200)]
Staging: HTC Dream: add camera support
This patch adds driver for HTC Dream camera. I guess driver is
slightly higher quality than usual for staging/ , but it is fairly big
and I don't feel like doing all the cleanups myself. Also some parts
can probably be removed, as they did not end up in shipping hardware..
Signed-off-by: Pavel Machek <pavel@ucw.cz> Cc: Brian Swetland <swetland@google.com> Cc: Iliyan Malchev <ibm@android.com> Cc: San Mehat <san@android.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Brian Swetland [Fri, 17 Jul 2009 11:08:15 +0000 (13:08 +0200)]
Staging: HTC Dream: add smd code
Infrastructure to support the Qualcomm "shared memory driver"
interface, used to communicate with the baseband processor on MSM7k
SoCs. The smd core provides low level facilities to interact with the
shared memory comms region, and a "virtual serial channel" interface
that higher level transports (AT command channel, rmnet virtual
ethernet, qmi network management protocol, and oncrpc, for example)
are routed over.
Signed-off-by: Pavel Machek <pavel@ucw.cz> Cc: Brian Swetland <swetland@google.com> Cc: Iliyan Malchev <ibm@android.com> Cc: San Mehat <san@android.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* remove unused / duplicated definitions
* remove unused / used only once typedefs
* fix comments, remove useless ones
* convert defines to enums where appropriate
* use __func__ instead of __FUNCTION__
* make some minor coding style fixes
* misc cleanups
Marcin Slusarz [Wed, 8 Jul 2009 20:07:20 +0000 (22:07 +0200)]
Staging: rt*: fix wait_queue_head_t declaration on stack
othwerwise lockdep complains:
"INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator."
Fix this build error when CONFIG_WIRELESS_EXT is not set
at76_usb.c:5322: error: 'struct net_device' has no member named 'wireless_data'
at76_usb.c:5325: error: 'struct net_device' has no member named 'wireless_handlers'
Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Thu, 20 Aug 2009 10:25:12 +0000 (11:25 +0100)]
Staging: quatech_usb2: Improvements to set_termios method
This patch implements several improvements to the set_termios method
suggested by Alan Cox:
* Correct check for whether any changes are being requested.
* Inform callers that mark/space parity isn't supported by always
clearing the bit.
* Pass back the actual used baud rate in case it doesn't match what was
requested.
Remaining known issues are that IXANY flow control is not supported, but
we don't tell the caller that, and input and output XON/XOFF flow
control are either both on or both off, but we don't indicate that back
to the caller either.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Thu, 20 Aug 2009 10:24:59 +0000 (11:24 +0100)]
Staging: quatech_usb2: Improve debug output and fix write_room
This patch contains changes made in the course of successfully reading
data from the device. These consist of a number of corrections and
additions to debug messages, and a fix for incorrect calculation of the
number of characters in the device FIFO which affected the operation of
the write_room method.
The use of semaphores to control access to port settings is replaced by
the preferred use of mutexes as this is the only code that uses them.
Aug 18 17:09:32 [kernel] BUG: unable to handle kernel paging request at f82f122c
Aug 18 17:09:32 [kernel] IP: [<c11e1a63>] tty_port_close_start+0x8c/0x15e
Aug 18 17:09:32 [kernel] *pde = 00000000
Aug 18 17:09:32 [kernel] Modules linked in: snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss nls_iso8859_1 cifs xt_limit xt_NFLOG nfnetlink_log nfnetlink xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables x_tables i915 fb drm i2c_algo_bit cfbcopyarea i2c_core video backlight output cfbimgblt cfbfillrect quatech_usb2(C) usbserial uhci_hcd ehci_hcd snd_intel8x0 snd_ac97_codec ac97_bus usbcore tg3 snd_pcm snd_timer libphy snd intel_agp psmouse evdev ohci1394 soundcore ide_cd_mod cdrom ieee1394 snd_page_alloc agpgart floppy
Aug 18 17:09:32 [kernel] Pid: 4192, comm: cat Tainted: G C (2.6.31-rc6-gkh #9) HP Compaq dc5100 MT(PW097ET)
Aug 18 17:09:32 [kernel] EIP: 0060:[<c11e1a63>] EFLAGS: 00010046 CPU: 0
Aug 18 17:09:32 [kernel] EIP is at tty_port_close_start+0x8c/0x15e
Aug 18 17:09:32 [kernel] EAX: 00000000 EBX: 00000246 ECX: ebacc380 EDX: 00000000
Aug 18 17:09:32 [kernel] ESI: f72f1204 EDI: e6073000 EBP: e60b3ce4 ESP: e60b3ccc
Aug 18 17:09:32 [kernel] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
Aug 18 17:09:32 [kernel] bcc17886e60b3d2cbcc17886f72f1200f72f1204e6073000e60b3d10f8b01a67
Aug 18 17:09:32 [kernel] <0> 00000000e60b3d10c11d9343e60730a0ebacc380bcc17886e607300000000000
Aug 18 17:09:32 [kernel] <0> ebacc380e60b3d90c11da71c00000000f7802480bcc17886ebacc38000000000
Aug 18 17:09:32 [kernel] [<f8b01a67>] ? serial_close+0x3c/0x9a [usbserial]
Aug 18 17:09:32 [kernel] [<c11d9343>] ? tty_fasync+0x63/0xe3
Aug 18 17:09:32 [kernel] [<c11da71c>] ? tty_release_dev+0x159/0x47d
Aug 18 17:09:32 [kernel] [<c11804c5>] ? prio_tree_remove+0x6c/0xc5
Aug 18 17:09:32 [kernel] [<c1081c5f>] ? put_object+0x46/0x5e
Aug 18 17:09:32 [kernel] [<c11daa59>] ? tty_release+0x19/0x35
Aug 18 17:09:32 [kernel] [<c1086836>] ? __fput+0xed/0x1e4
Aug 18 17:09:32 [kernel] [<c1086951>] ? fput+0x24/0x39
Aug 18 17:09:32 [kernel] [<c108375e>] ? filp_close+0x4c/0x7b
Aug 18 17:09:32 [kernel] [<c1028076>] ? put_files_struct+0xc3/0xd2
Aug 18 17:09:32 [kernel] [<c10280b1>] ? exit_files+0x2c/0x40
Aug 18 17:09:32 [kernel] [<c1028551>] ? do_exit+0xd0/0x5f5
Aug 18 17:09:32 [kernel] [<c1031751>] ? recalc_sigpending+0x1b/0x4b
Aug 18 17:09:32 [kernel] [<c1031b8b>] ? dequeue_signal+0x96/0x154
Aug 18 17:09:32 [kernel] [<c1028ab1>] ? do_group_exit+0x3b/0x77
Aug 18 17:09:32 [kernel] [<c1032ec3>] ? get_signal_to_deliver+0x140/0x31b
Aug 18 17:09:32 [kernel] [<c11d90af>] ? tty_put_char+0x43/0x4b
Aug 18 17:09:32 [kernel] [<c1002633>] ? do_notify_resume+0xae/0x7fb
Aug 18 17:09:32 [kernel] [<c11dabcd>] ? tty_read+0x8f/0xb5
Aug 18 17:09:32 [kernel] [<c11dd0be>] ? n_tty_read+0x0/0x5d2
Aug 18 17:09:32 [kernel] [<c1085560>] ? vfs_read+0xb4/0x178
Aug 18 17:09:32 [kernel] [<c11dab3e>] ? tty_read+0x0/0xb5
Aug 18 17:09:32 [kernel] [<c10856e4>] ? sys_read+0x52/0x8b
Aug 18 17:09:32 [kernel] [<c1002f6a>] ? work_notifysig+0x13/0x19
Aug 18 17:09:32 [kernel] ---[ end trace 16f434ec7e2925bc ]---
Aug 18 17:09:32 [kernel] Fixing recursive fault but reboot is needed!
My guess is that my driver is doing something "wrong" in terms of it's
interface to the higher level layers and so is causing the oops. Are
there any mechanisms to turn on more checking / debugging in the layers
above the usb-serial layer to try and catch the cause of the problem?
I've already got USB_DEBUG enabled, what others might be relevant
(presumably USB_SERIAL_DEBUG isn't)?
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Thu, 20 Aug 2009 10:24:49 +0000 (11:24 +0100)]
Staging: quatech_usb2: vendor implementation of break_ctl
This patch imports the implementation of the break_ctl, throttle and
unthrottle methods from the vendor driver into the staging driver. This
compiles but is not yet tested.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Thu, 20 Aug 2009 10:24:39 +0000 (11:24 +0100)]
Staging: quatech_usb2: vendor implementation of set_termios method
This patch imports the implementation of the set_termios method from the
vendor driver into the staging driver. The common terminal setting
changes should be supported.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Mon, 17 Aug 2009 09:43:49 +0000 (10:43 +0100)]
Staging: quatech_usb2: chars_in_buffer() fix
It seems I can't count.
Patch to fix chars_in_buffer() method (broken in vendor driver), and
subsequently simplify the close() method, making it somewhat less
broken. There is quite a bit more improvement to do on this method
though.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Mon, 17 Aug 2009 09:35:18 +0000 (10:35 +0100)]
Staging: quatech_usb2: write_room rewrite
The following patch re-writes the write_room method to work in the
obvious sort of way, so it keeps it's promises to the layers above.
Based on feedback from Alan Cox.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Mon, 17 Aug 2009 09:32:53 +0000 (10:32 +0100)]
Staging: quatech_usb2: close, read, and some ioctl support
This patch implements close(), read(), write() and some ioctls, and
fixes some implementation issues in open(). Compared to the previous
patch it doesn't suffer an oops in the module code, however if you try
to open any of the serial devices a second time then an oops occurs in
tty_open(), presumably because my code isn't playing nicely on the
previous close():
Aug 13 11:44:01 [kernel] WARNING: at drivers/char/tty_io.c:1268 tty_open+0x3e5/0x46d()
Aug 13 11:44:01 [kernel] Hardware name: HP Compaq dc5100 MT(PW097ET)
Aug 13 11:44:01 [kernel] Modules linked in: quatech_usb2(C) usbserial snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss nls_iso8859_1 cifs xt_limit xt_NFLOG nfnetlink_log nfnetlink xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables x_tables i915 fb drm i2c_algo_bit cfbcopyarea i2c_core video backlight output cfbimgblt cfbfillrect snd_intel8x0 snd_ac97_codec ehci_hcd ac97_bus uhci_hcd snd_pcm snd_timer usbcore snd ohci1394 psmouse ide_cd_mod cdrom tg3 soundcore snd_page_alloc ieee1394 libphy intel_agp agpgart floppy evdev [last unloaded: usbserial]
Aug 13 11:44:01 [kernel] Pid: 26765, comm: stty Tainted: G C 2.6.31-rc5-git3-gkh #7
Aug 13 11:44:01 [kernel] Call Trace:
Aug 13 11:44:01 [kernel] [<c11dbef8>] ? tty_open+0x3e5/0x46d
Aug 13 11:44:01 [kernel] [<c10264e2>] warn_slowpath_common+0x88/0xb0
Aug 13 11:44:01 [kernel] [<c11dbef8>] ? tty_open+0x3e5/0x46d
Aug 13 11:44:01 [kernel] [<c102652b>] warn_slowpath_null+0x21/0x3b
Aug 13 11:44:01 [kernel] [<c11dbef8>] tty_open+0x3e5/0x46d
Aug 13 11:44:01 [kernel] [<c10883d1>] chrdev_open+0x77/0x113
Aug 13 11:44:01 [kernel] [<c1083a5d>] __dentry_open+0xb8/0x230
Aug 13 11:44:01 [kernel] [<c108835a>] ? chrdev_open+0x0/0x113
Aug 13 11:44:01 [kernel] [<c1084993>] nameidata_to_filp+0x61/0x6a
Aug 13 11:44:01 [kernel] [<c1091144>] do_filp_open+0x248/0x7cd
Aug 13 11:44:01 [kernel] [<c106f14f>] ? __do_fault+0x2ba/0x3b2
Aug 13 11:44:01 [kernel] [<c109a337>] ? alloc_fd+0x6a/0xf1
Aug 13 11:44:01 [kernel] [<c1083804>] do_sys_open+0x5f/0x12b
Aug 13 11:44:01 [kernel] [<c1083947>] sys_open+0x2e/0x47
Aug 13 11:44:01 [kernel] [<c1002e4f>] sysenter_do_call+0x12/0x26
Aug 13 11:44:01 [kernel] ---[ end trace 1d6b9e2cd7636394 ]---
Aug 13 11:44:01 [kernel] BUG: unable to handle kernel NULL pointer dereference at 00000004
Aug 13 11:44:01 [kernel] IP: [<c1086538>] file_move+0x26/0x47
Aug 13 11:44:01 [kernel] *pde = 00000000
Aug 13 11:44:01 [kernel] Modules linked in: quatech_usb2(C) usbserial snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss nls_iso8859_1 cifs xt_limit xt_NFLOG nfnetlink_log nfnetlink xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables x_tables i915 fb drm i2c_algo_bit cfbcopyarea i2c_core video backlight output cfbimgblt cfbfillrect snd_intel8x0 snd_ac97_codec ehci_hcd ac97_bus uhci_hcd snd_pcm snd_timer usbcore snd ohci1394 psmouse ide_cd_mod cdrom tg3 soundcore snd_page_alloc ieee1394 libphy intel_agp agpgart floppy evdev [last unloaded: usbserial]
Aug 13 11:44:01 [kernel] Pid: 26765, comm: stty Tainted: G WC (2.6.31-rc5-git3-gkh #7) HP Compaq dc5100 MT(PW097ET)
Aug 13 11:44:01 [kernel] EIP: 0060:[<c1086538>] EFLAGS: 00010282 CPU: 0
Aug 13 11:44:01 [kernel] EIP is at file_move+0x26/0x47
Aug 13 11:44:01 [kernel] EAX: 00000000 EBX: e593b508 ECX: ea7e9900 EDX: f734a888
Aug 13 11:44:01 [kernel] ESI: 00000000 EDI: 0bc00004 EBP: d8923e10 ESP: d8923e08
Aug 13 11:44:01 [kernel] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
Aug 13 11:44:01 [kernel] 2ba6efc8c8c93180d8923e48c11dbca7ea7e9900eed37e6c0000000000008800
Aug 13 11:44:01 [kernel] <0> 00000000e593b400e593b400000000042ba6efc8c8c9318800000000eed37e6c
Aug 13 11:44:01 [kernel] <0> d8923e68c10883d1ea7e99002ba6efc82ba6efc8ea7e9900eed37e6cffffffe9
Aug 13 11:44:01 [kernel] [<c11dbca7>] ? tty_open+0x194/0x46d
Aug 13 11:44:01 [kernel] [<c10883d1>] ? chrdev_open+0x77/0x113
Aug 13 11:44:01 [kernel] [<c1083a5d>] ? __dentry_open+0xb8/0x230
Aug 13 11:44:01 [kernel] [<c108835a>] ? chrdev_open+0x0/0x113
Aug 13 11:44:01 [kernel] [<c1084993>] ? nameidata_to_filp+0x61/0x6a
Aug 13 11:44:01 [kernel] [<c1091144>] ? do_filp_open+0x248/0x7cd
Aug 13 11:44:01 [kernel] [<c106f14f>] ? __do_fault+0x2ba/0x3b2
Aug 13 11:44:01 [kernel] [<c109a337>] ? alloc_fd+0x6a/0xf1
Aug 13 11:44:01 [kernel] [<c1083804>] ? do_sys_open+0x5f/0x12b
Aug 13 11:44:01 [kernel] [<c1083947>] ? sys_open+0x2e/0x47
Aug 13 11:44:01 [kernel] [<c1002e4f>] ? sysenter_do_call+0x12/0x26
Aug 13 11:44:01 [kernel] ---[ end trace 1d6b9e2cd7636395 ]---
Read and Write also do not work at the moment, and I'm fairly sure that
the URB completion callbacks are not running. Why this is I don't know,
and haven't tried to investigate.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Wed, 29 Jul 2009 16:12:18 +0000 (17:12 +0100)]
Staging: quatech_usb2: implement open functionality
Part two of the driver implementation has finally got done. It
implements the rest of open and the callback for reads from the box. I
seem to have finally found a structure that can be made to work, with a
single set of URBs for bulk read and write for the whole device, which
are used by all the ports. I've rationalised a few things, but there
will still be a lot of clean-up needed.
This one definitely can panic the kernel when a port is opened for
reading, but I'm off on holiday so I thought I'd post where I have got
to so far. I haven't tried to debug why it panics with a null pointer
dereference yet.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Richard Ash [Tue, 23 Jun 2009 16:28:06 +0000 (17:28 +0100)]
Staging: add Support for Quatech ESU2-100 USB 2.0 8-port serial adaptor
The patch is of the "works as far as it goes" variety, in that the
module compiles and loads, the device nodes are registered and the unit
switched on, but nothing actually works. On the other hand, it doesn't
panic the kernel, as far as I know.
Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Karl Relton [Wed, 19 Aug 2009 07:06:39 +0000 (08:06 +0100)]
Staging: wlan-ng: Convert firmware loading to load binary ihex format
Convert prism2_usb firmware loading to load firmware in pre-compiled
binary 'ihex' format rather than ascii 'srec' format. This moves the
srec processing and sorting of records out of kernel space into a
pre-compiler. The driver now just works with the binary image, but
still does the 'pda plugging' of that image at runtime, as required
by the prism hardware.
Some Notes:
- The firmware is now expected to be in the same 'ihex' (.fw) format
used by other drivers.
- The now driver assumes the data records are already sorted into ascending
address order.
- Plug and crc records are still recognised by special address locations
as in original srec processing.
- The srec S7 start address record is assumed to have been converted
into a data record with another special address location (0xff400000),
with the original start address being stored as a 4 byte data word
(little endian).
Signed-off-by: Karl Relton <karllinuxtest.relton@ntlworld.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Staging: Comedi: Lindent changes to comdi driver in staging tree
Lindent changes to comdi driver in staging tree.
This patch is followed by the checkpatch.pl error fixes.
Did not make them part of this patch as the patch size is already huge.
Staging: vt6655: fix build when !CONFIG_WIRELESS_EXT
Fix this build error when CONFIG_WIRELESS_EXT is not set:
drivers/staging/vt6655/device_main.c:1153: error: 'struct net_device'
has no member named 'wireless_handlers'
Cc: Forest Bond <forest@alittletooquiet.net> Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>