Kirill Smelkov [Mon, 13 Jun 2011 12:18:32 +0000 (16:18 +0400)]
staging/easycap: Fix bytesperline calculation
As described above fillin_formats()
"""
/*
* THE 16-BIT easycap_format.mask HAS MEANING:
* (least significant) BIT 0: 0 => PAL, 25 FPS; 1 => NTSC, 30 FPS
* BITS 2-4: RESERVED FOR DIFFERENTIATING STANDARDS
* BITS 5-7: NUMBER OF BYTES PER PIXEL
* BIT 8: 0 => NATIVE BYTE ORDER; 1 => SWAPPED
* BITS 9-10: RESERVED FOR OTHER BYTE PERMUTATIONS
* BIT 11: 0 => UNDECIMATED; 1 => DECIMATED
* BIT 12: 0 => OFFER FRAMES; 1 => OFFER FIELDS
* BIT 13: 0 => FULL FRAMERATE; 1 => REDUCED
* (most significant) BITS 14-15: RESERVED FOR OTHER FIELD/FRAME OPTIONS
* IT FOLLOWS THAT:
* bytesperpixel IS ((0x00E0 & easycap_format.mask) >> 5)
* byteswaporder IS true IF (0 != (0x0100 & easycap_format.mask))
*
* decimatepixel IS true IF (0 != (0x0800 & easycap_format.mask))
*
* offerfields IS true IF (0 != (0x1000 & easycap_format.mask))
*/
"""
bytes-per-pixel is stored in bits 5-7 of calculated mask.
But when calculating bytes-per-line we were extracting wrong value
instead of bytes-per-pixel, which was usually 2 times bigger -- e.g. for
PAL YUV 422 I was getting ((mask3 & 0x00F0) >> 4) = 4 bytes instead of 2.
The error here is that even in comments there is a line saying
* bytesperpixel IS ((0x00E0 & easycap_format.mask) >> 5)
but we were using
((0x00F0 & easycap_format.mask) >> 4)
With 2 times bigger bytesperpixel and automatically bytesperline, the
video was shown halfheight'ed, which is understandable if we look at
video-memory layout:
for each line, we should display width pixels, then move to next line
with bytesperline, and oops, if bytesperline = 2*real-bytesperlin, we'll
skip one line and move to next-next line, and so only half lines will be
shown.
Initially I've debugged the problem with my video application[1], but
I've checked that after this patch both rawv (mine app) and tvtime work
correctly.
[1] http://repo.or.cz/w/rawv.git
P.S. why at all we use those mask/shifts? Why not use bitfields?
Cc: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Acked-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Kirill Smelkov [Tue, 14 Jun 2011 16:46:49 +0000 (20:46 +0400)]
staging/easycap: Fix thinko in "bars" module option description
Both bars=0 and bars=1 were described as meaning to display bars on
signal lost. Actually bars=1 means "display bars", but bars=0 means
display raw source as is (usually black screen).
Instead of changing bars=0 to "_no_ testcard bars ..." as suggested by
Dan Carpenter reword the whole bars description for clarity.
Cc: Mike Thomas <rmthomas@sciolus.org> Cc: Dan Carpenter <error27@gmail.com> Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Acked-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Kirill Smelkov [Mon, 13 Jun 2011 12:18:28 +0000 (16:18 +0400)]
staging/easycap: Kill leftover build options in readme
The following options were removed from in-tree driver, but were left
in README:
- EASYCAP_IS_VIDEODEV_CLIENT was removed in cb81fa07 (staging/easycap:
kill EASYCAP_IS_VIDEODEV_CLIENT compilation conditional);
- EASYCAP_NEEDS_V4L2_DEVICE_H/EASYCAP_NEEDS_V4L2_FOPS were removed in 30516058 (staging/easycap: kill EASYCAP_NEEDS_V4L2_DEVICE_H and
EASYCAP_NEEDS_V4L2_FOPS);
- EASYCAP_NEEDS_UNLOCKED_IOCTL was removed in f2b3c685 (staging/easycap:
kill EASYCAP_NEEDS_UNLOCKED_IOCTL).
Remove them.
Cc: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Acked-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Tobias Klauser [Fri, 17 Jun 2011 08:53:54 +0000 (10:53 +0200)]
Staging: usbip: Fix out-of-tree build for userspace
This fixes out-of-tree builds ($builddir != $srcdir). In such cases,
libusbip.la cannot be found because it is generated in the build
directory and not the source directory.
Larry Finger [Sun, 19 Jun 2011 03:34:34 +0000 (22:34 -0500)]
staging: r8192e_pci: Handle duplicate PCI ID 0x10ec:0x8192 conflict with rtl8192se
There are two devices with PCI ID 0x10ec:0x8192, namely RTL8192E and
RTL8192SE. The method of distinguishing them is by the revision ID
at offset 0x8 of the PCI configuration space. If the value is 0x10,
then the device uses rtl8192se for a driver.
Jerome Marchand [Fri, 10 Jun 2011 13:28:49 +0000 (15:28 +0200)]
Staging: zram: Replace mutex lock by a R/W semaphore
Currently, nothing protects zram table from concurrent access.
For instance, ZRAM_UNCOMPRESSED bit can be cleared by zram_free_page()
called from a concurrent write between the time ZRAM_UNCOMPRESSED has
been set and the time it is tested to unmap KM_USER0 in
zram_bvec_write(). This ultimately leads to kernel panic.
Also, a read request can occurs when the page has been freed by a
running write request and before it has been updated, leading to
zero filled block being incorrectly read and "Read before write"
error message.
This patch replace the current mutex by a rw_semaphore. It extends
the protection to zram table (currently, only compression buffers are
protected) and read requests (currently, only write requests are
protected).
Jerome Marchand [Fri, 10 Jun 2011 13:28:48 +0000 (15:28 +0200)]
Staging: zram: allow partial page operations
Commit 7b19b8d45b216ff3186f066b31937bdbde066f08 (zram: Prevent overflow
in logical block size) introduced ZRAM_LOGICAL_BLOCK_SIZE constant to
prevent overflow of logical block size on 64k page kernel.
However, the current implementation of zram only allow operation on block
of the same size as a page. That makes theorically legit 4k requests fail
on 64k page kernel.
This patch makes zram allow operation on partial pages. Basically, it
means we still do operations on full pages internally, but only copy the
relevent segments from/to the user memory.
This patch refactor the code of zram_read/write() functions. It does
not removes a lot of duplicate code alone, but is mostly a helper for
the third patch of this series (Staging: zram: allow partial page
operations).
The message has been deleted, the driver requires no special action on this
particular event (). See: https://bugzilla.kernel.org/show_bug.cgi?id=38162
Reported-by: David Hill <hilld@binarystorm.net> Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:50 +0000 (16:47 -0700)]
staging: brcm80211: rename structure definitions in dhd.h
Structure definitions in dhd.h have been prefixed with brcmf_ for
consistent naming in fullmac driver and typedef of these structures
has been removed.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:48 +0000 (16:47 -0700)]
staging: brcm80211: rename function variables
The fullmac driver uses dhd as variable name for the driver instance
in a number of functions. This has been changed to a more generic name
as the dhd is not meaningful (broadcom internal name).
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Franky Lin [Wed, 29 Jun 2011 23:47:47 +0000 (16:47 -0700)]
staging: brcm80211: clean up firmware download code in fullmac
In brcmfmac the firmware download related code scatter all around.
And some old dead code which is not following the standard firmware
routine is still present. This patch limits the firmware download
related code only in dhd_sdio.c and removes the rest.
Signed-off-by: Franky Lin <frankyl@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Franky Lin [Wed, 29 Jun 2011 23:47:41 +0000 (16:47 -0700)]
staging: brcm80211: move sdio related suspend/resume code to bus interface layer
In fullmac some SDIO configurations should be done in suspend/resume
routine. It was placed under pm ops in wl_cfg80211.c which is
inappropriate. This patchs move them to sdio layer.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:37 +0000 (16:47 -0700)]
staging: brcm80211: remove custom gpio support code
The custom gpio code is intended for hardware platform for specific
customers and require supporting functionality not included in the
fullmac driver. The fullmac driver does not need this so it has been
removed.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:35 +0000 (16:47 -0700)]
staging: brcm80211: replace DHD_DEBUG macro with BCMDBG
The common Makefile for both brcm80211 drivers defines the macro
BCMDBG upon select Kconfig item BRCMDBG. The fullmac source add
another macro DHD_DEBUG with the same meaning. This is removed
and all conditional code now checks for BCMDBG definition.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The fullmac driver is always needing the code conditionalized with
MMC_SDIO_ABORT macro so the macro has been removed and the code
is always compiled in.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Wed, 29 Jun 2011 23:47:12 +0000 (16:47 -0700)]
staging: brcm80211: removed BDC defines
Code cleanup. BDC (Broadcom Device Class) protocol extension is used on top
of the USB related CDC (Communication Device Class) definition. BDC is always
used, so the #ifdefs were redundant.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:10 +0000 (16:47 -0700)]
staging: brcm80211: rename fullmac functions
The function provided by dhd_linux.c have been renamed to make
the naming throughout the driver more consistent and remove
Broadcom specific acronyms which are not meaningful.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:09 +0000 (16:47 -0700)]
staging: brcm80211: remove unnecessary abstraction for scheduler
The source dhd_linux_sched.c provided function setScheduler, but it
simply calls sched_setscheduler() linux function. The setScheduler()
function has been removed.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:06 +0000 (16:47 -0700)]
staging: brcm80211: replace macro BCM_MSG_IFNAME_MAX with IFNAMSIZ
In dhd.h the macro BCM_MSG_IFNAME_MAX was defined and used. As this
is used to carry the interface name we might as well use IFNAMSIZ
which results in the same size.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:03 +0000 (16:47 -0700)]
staging: brcm80211: rename functions and variables in dhd_common.c
The naming convention of the drivers is to be made consistent. This
commit fixes the function in dhd_common.c and use the new names from
the calling code.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Wed, 29 Jun 2011 23:47:02 +0000 (16:47 -0700)]
staging: brcm80211: remove extern function prototypes from c files
It is not recommended to specify function prototypes in c sources
using the extern keyword. Several occurrences have been removed or
placed in a header file or simply removed as it was already present
in a header file.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>