Mike Brady [Mon, 22 Oct 2018 19:17:08 +0000 (20:17 +0100)]
staging: bcm2835-audio: interpolate audio delay
When the BCM2835 audio output is used, userspace sees a jitter up to 10ms
in the audio position, aka "delay" -- the number of frames that must
be output before a new frame would be played.
Make this a bit nicer for userspace by interpolating the position
using the CPU clock.
The overhead is small -- an extra ktime_get() every time a GPU message
is sent -- and another call and a few calculations whenever the delay
is sought from userland.
At 48,000 frames per second, i.e. approximately 20 microseconds per
frame, it would take a clock inaccuracy of
20 microseconds in 10 milliseconds -- 2,000 parts per million --
to result in an inaccurate estimate, whereas
crystal- or resonator-based clocks typically have an
inaccuracy of 10s to 100s of parts per million.
Signed-off-by: Mike Brady <mikebrady@eircom.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Adham Abozaeid [Tue, 6 Nov 2018 00:01:17 +0000 (00:01 +0000)]
staging: wilc1000: remove unused flags in handle_cfg_param()
handle_cfg_param() receives a bit map that describes what to be changed.
Some of these bits flags aren't referred to from elsewhere and can be
removed.
Gao Xiang [Thu, 8 Nov 2018 04:00:36 +0000 (12:00 +0800)]
staging: erofs: use the new LZ4_decompress_safe_partial()
LZ4_decompress_safe_partial() can now decode exactly the nb of bytes
requested after the upstreamed commit 2209fda323e2 ("lib/lz4: update LZ4
decompressor module"), remove the erofs hacked lz4 decompression code.
A more cleaned compressor wrapper will be introduced in the subsequent
patches in order to prepare for supporting multiple compression algorithms.
Colin Ian King [Thu, 8 Nov 2018 11:02:24 +0000 (11:02 +0000)]
media: staging: tegra-vde: print long unsigned using %lu format specifier
The frame.flags & FLAG_B_FRAME is promoted to a long unsigned because
of the use of the BIT() macro when defining FLAG_B_FRAME and causing a
build warning. Fix this by using the %lu format specifer.
Cleans up warning:
drivers/staging/media/tegra-vde/tegra-vde.c:267:5: warning: format
specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
Fixes: 42e764d05712 ("staging: tegravde: replace bit assignment with macro") Cc: Ioannis Valasakis <code@wizofe.uk> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The macro SET_RATE_ID is a definition in function
and undefined at end of function.
Make it as inline avoid the arg reuse for macro,
the name is changed in _rtl_rate_id, following the
same function pattern in the file.
Signed-off-by: Cristian Sicilia <sicilia.cristian@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Tue, 30 Oct 2018 17:23:54 +0000 (17:23 +0000)]
staging: comedi: ni_labpc_common: Use insn->n in AO insn_write handler
The `insn_write` handler for the AO subdevice (`labpc_ao_insn_write()`)
currently ignores `insn->n` (the number of samples to write) and assumes
a single sample is to be written. But `insn->n` could be 0, meaning no
samples should be written, in which case `data[0]` is invalid.
Follow the usual Comedi guidelines and change `labpc_ao_insn_write()` to
write the specified number of samples. This fixes the assumption that
`data[0]` is valid.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Tue, 30 Oct 2018 14:44:16 +0000 (14:44 +0000)]
staging: comedi: cb_pcidda: Use insn->n in AO insn_write handler
The `insn_write` handler for the AO subdevice
(`cb_pcidda_ao_insn_write()`) currently ignores `insn->n` (the number of
samples to write) and assumes a single sample is to be written. But
`insn->n` could be 0, meaning no samples should be written, in which
case `data[0]` is invalid.
Follow the usual Comedi guidelines and change
`cb_pcidda_ao_insn_write()` to write the specified number of samples.
This fixes the assumption that `data[0]` is valid.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Wed, 31 Oct 2018 12:29:56 +0000 (12:29 +0000)]
staging: comedi: addi_apci_3501: Use insn->n in EEPROM insn_read handler
The `insn_read` handler for the EEPROM subdevice
(`apci3501_eeprom_insn_read()`) currently ignores `insn->n` (the number
of samples to be read) and assumes a single sample is to be read. But
`insn->n` could be 0, meaning no samples should be read, in which case
`data[0]` ought not to be written. (The comedi core at least ensures
that `data[0]` exists, but we should not rely on that.)
Following the usual Comedi guidelines and interpret `insn->n` as the
number of samples to be read, but only read the EEPROM location once and
make `insn->n` copies, as we don't expect the contents of the EEPROM
location to change between readings.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Tue, 30 Oct 2018 14:17:13 +0000 (14:17 +0000)]
staging: comedi: Check length of INSN_CONFIG_TIMER_1 instruction
The contents of the Comedi configuration instruction
`INSN_CONFIG_TIMER_1` instruction are not very well defined, but the one
driver that uses it (the "cb_pcidas64" driver for the PCI-DAS4020/12
card) assumes its `insn->n` is 5. Add a check in
`check_insn_config_length()` to verify that `insn->n` is correct for
this configuration instruction.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Tue, 30 Oct 2018 14:17:12 +0000 (14:17 +0000)]
staging: comedi: cb_pcidas64: Use insn->n in EEPROM insn_read handler
The `insn_read` handler for the EEPROM subdevice (`eeprom_insn_read()`)
currently ignores `insn->n` (the number of samples to be read) and
assumes a single sample is to be read. But `insn->n` could be 0,
meaning no samples should be read, in which case `data[0]` ought not to
be written. (The comedi core at least ensures that `data[0]` exists,
but we should not rely on that.)
Follow the usual Comedi guidelines and interpret `insn->n` as the number
of samples to be read, but only read the EEPROM location once and make
`insn->n` copies, as we don't expect the contents of the EEPROM location
to change between readings.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Tue, 30 Oct 2018 14:17:11 +0000 (14:17 +0000)]
staging: comedi: cb_pcidas64: Use insn->n in AO insn_write handler
The `insn_write` handler for the AO subdevice (`ao_winsn()` currently
ignores `insn->n` (the number of samples to write) and assumes a single
sample is to be written. But `insn->n` could be 0, meaning no samples
should be written, in which case `data[0]` is invalid.
Follow the usual Comedi guidelines and change `ao_winsn()` to write the
specified number of samples. This fixes the assumption that `data[0]`
is valid.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Hans de Goede [Mon, 22 Oct 2018 14:57:47 +0000 (16:57 +0200)]
staging: vboxvideo: Fixup some #ifdef-s
Add #ifdef CONFIG_PM_SLEEP around the suspend/hibernate functions.
Remove unnecessary #ifdef CONFIG_COMPAT, the .compat_ioctl member is
always available and if CONFIG_COMPAT is not set then drm_compat_ioctl
is defined to NULL.
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The field accept_addba_req of struct mlme_ext_info has type bool.
Use the value of accept_addba_req directly instead of the ternary
operator in an asignment.
Signed-off-by: Michael Straube <straube.linux@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Michael Straube [Sun, 21 Oct 2018 19:45:28 +0000 (21:45 +0200)]
staging: rtl8188eu: change type of is_cck_rate - style
The variable is_cck_rate is used for boolean values, so change the
type from u8 to bool. The initializations to zero and use of ternary
operator in the assignments are unnecessary, remove them as well.
Suggested-by: Joe Perches <joe@perches.com> Signed-off-by: Michael Straube <straube.linux@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The following tasks were completed or not the right solution:
1/2- Not the proper solution, we should register a platform device in
vchiq the same way it's done with bcm2835-camera as commented here:
https://lkml.org/lkml/2018/10/16/1131
2/3- Fixed by Takashi Iwai here: https://lkml.org/lkml/2018/9/4/587
Also, adds a new task as per mailing list conversation.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The memory is being allocated with devres_alloc(), wich ultimately uses
__GFP_ZERO to call kmalloc. We don't need to zero the memory area again
in bcm2835-audio.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Takashi Iwai <tiwai@suse.de> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The device communicates with the audio core using FOURCC codes. The
driver was generating them using different macros/expressions. We now
use the same macro to create them and centralize all the definitions.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Takashi Iwai <tiwai@suse.de> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Colin Ian King [Wed, 7 Nov 2018 10:39:32 +0000 (10:39 +0000)]
staging: rtl8192u: rename struct name _rt_firmare_seg_container
Rename struct _rt_firmare_seg_container to _fw_seg_container to match
the typedef name of this structure. Also removes the spelling mistake
of 'firmare'.
Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Colin Ian King [Tue, 30 Oct 2018 11:09:59 +0000 (11:09 +0000)]
staging: speakup: clean up few indentation issues
Trivial fix to clean up indentation issues across the driver
Signed-off-by: Colin Ian King <colin.king@canonical.com> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Hans de Goede [Thu, 18 Oct 2018 15:03:33 +0000 (17:03 +0200)]
staging: vboxvideo: Stop disabling/enabling accel support on master set / drop
Userspace mode-setting (and thus also VESA) is not supported together with
modesetting. KMS userspace apps not properly marking the framebuffer as
dirty are also not supported.
So stop trying to accommodate this and simply enable accel
once at driver init.
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Hans de Goede [Thu, 18 Oct 2018 15:03:29 +0000 (17:03 +0200)]
staging: vboxvideo: Keep old mode when disable crtc
On DPMS off we get a call to vbx_crtc_atomic_disable, followed by
a call to vbox_primary_atomic_update, at which point crtc_state->enable
is 0 and crtc_state->mode has been zero-ed. On a 0 width/height
vbox_do_modeset() falls back to 640x480, so this causes the guest Window
(its "monitor") to resize to 640x480 (and become black).
This commit makes us not look at crtc_state->mode when crtc_state->enable
is not set, so that we keep the old mode and just make the window go black.
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
staging: speakup: move arguments to adhere to 80 chars
Move the arguments of spk_serial_synth_immediate and the
spk_ttyio_synth_immediate to adhere to 80 chars limit coding standards.
Reported by checkpatch.
Signed-off-by: Ioannis Valasakis <code@wizofe.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Rasmus Villemoes [Wed, 24 Oct 2018 10:48:20 +0000 (11:48 +0100)]
staging: greybus: loopback.c: remove unused lists
gb_loopback_device::list_op_async is never used except for the
LIST_INIT. The ::list field appears to have a few more uses, but on
closer inspection the linked list of struct gb_loopbacks that it heads
is never used for anything, so there's no reason to maintain it, much
less to keep it sorted.
Ajay Singh [Thu, 1 Nov 2018 16:45:26 +0000 (16:45 +0000)]
staging: wilc1000: remove coreconfigurator.h file
Remove the coreconfigurator header file, as its source file is deleted
after code refactor. Moved the required structure and prototypes to
hostinterface header.
Ajay Singh [Thu, 1 Nov 2018 16:45:23 +0000 (16:45 +0000)]
staging: wilc1000: remove coreconfigurator.c file
After use of framework API's most of the redundant functions are removed
in coreconfigurator.c file. Now moved left over function to
host_interface file and deleted the coreconfigurator.c file.
Refactor wilc_parse_assoc_resp_info() function by removing the use of
get_asoc_status() API. For parsing assoc response use the struct and
avoided the use of offset macros to extract the ies information.
Ajay Singh [Thu, 1 Nov 2018 16:45:11 +0000 (16:45 +0000)]
staging: wilc1000: refactor get_bssid() function
Refactor get_bssid() by making use of 'ieee80211_mgmt' struct. Instead
of passing the memory offset now using structure element to fetch the
bssid information.
Returning the pointer to bssid from get_bssid() instead of filing the
input argument.
Remove unneeded parentheses around the arguments of ||. This reduces
clutter and code behave in the same way.
Change suggested by checkpatch.pl.
vbox_main.c:119: CHECK: Unnecessary parentheses around 'rects[i].x2 <
crtc->x'
Signed-off-by: Shayenne da Luz Moura <shayenneluzmoura@gmail.com> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Maya Nakamura [Wed, 31 Oct 2018 21:09:15 +0000 (14:09 -0700)]
staging: rtlwifi: Remove unnecessary conditions
Remove conditions with no effect. Issues found by Coccinelle's semantic
patch results for cond_no_effect.cocci. Eliminate checkpatch result, a
line should not end with a parenthesis.
Maya Nakamura [Thu, 1 Nov 2018 04:04:48 +0000 (21:04 -0700)]
staging: rtlwifi: Replace 1 with true and remove comparison for bool
Replace 1 with true for bool assignments and remove a comparison of a bool
with 1. Issues found by Coccinelle's semantic patch results for
boolinit.cocci.
Remove unnecessary blank lines, including multiple blank lines, blank
lines after opening braces, and blank lines before closing braces, from
file core/rtw_ap.c. Issues found by checkpatch.
Signed-off-by: Kimberly Brown <kimbrownkd@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Kimberly Brown [Sun, 28 Oct 2018 18:12:44 +0000 (14:12 -0400)]
staging: xgifb: vb_setmode: adjust descendant indentation to right
Adjust descendant indentation so that it is placed substantially to the
right. This change improves code readability and complies with the
Linux kernel coding style.
Signed-off-by: Kimberly Brown <kimbrownkd@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Kimberly Brown [Wed, 24 Oct 2018 04:56:53 +0000 (00:56 -0400)]
staging: mt7621-dma: Add braces around else branches
Add braces around else branches in conditional statements that include
branches with multiple statements. This style complies with the Linux
kernel coding style and improves consistency and readability. Issues found by
checkpatch.
Maya Nakamura [Sat, 27 Oct 2018 10:16:39 +0000 (03:16 -0700)]
staging: rtlwifi: Remove function that only returns zero
Because the odm_sq_process_patch_rt_cid_819x_lenovo function is only called
to return zero, remove the unnecessary function and change the section that
calls it. Issues found by Coccinelle's semantic patch results for
returnvar.cocci and checkpatch.pl.
Maya Nakamura [Sat, 27 Oct 2018 10:15:03 +0000 (03:15 -0700)]
staging: rtlwifi: Remove function that only returns the second argument
Because the odm_signal_scale_mapping function is only called to return the
second argument, remove the unnecessary function and change the statements
that call it, including removing unneeded braces and adding a blank line.
Note that removing casts (u8 to s32 and back to u8) will not lose
information because the value converted should be between 0 and 100.
1.if and else are functionally identical as they assign same value to
variable 'undec_sm_pwdb'.
2.Variable 'undec_sm_pwdb' not required to just return a single value.
3.Function not needed to just return a value and so removed the function
and assigned value rtlpriv->dm.undec_sm_pwdb where the function
halbtc_get_wifi_rssi() is called.
Signed-off-by: Bhanusree Pola <bhanusreemahesh@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Kimberly Brown [Fri, 26 Oct 2018 00:04:55 +0000 (20:04 -0400)]
staging: gasket: use sizeof(*p) for memory allocation
Use sizeof(*p) instead of sizeof(struct P) for memory allocation. This
change complies with the Linux kernel coding style. It improves
readability and decreases the opportunity for bugs if the pointer
variable type is changed. Issue found by checkpatch.