mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-15 09:34:17 +00:00
Staging/IIO fixes for 4.19-rc4
Here are a few small staging and iio driver fixes for -rc4. Nothing major, just a few small bugfixes for some reported issues, and a MAINTAINERS file update for the fbtft drivers. We also re-enable the building of the erofs filesystem as the patcheset that was causing it to break never got merged in the -rc1 cycle, so there's no reason it can't be turned back on for now. The problem that was previously there is now being handled in that other tree at the moment, so it will not hit us again in the future. All of these patches have been in linux-next with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCW5uYBg8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ylXbgCggwl5qtveSqJKHggCYY1S4/jd9qQAnAoWc8j7 A351tsmd6c5vujWBaLr5 =a2vY -----END PGP SIGNATURE----- Merge tag 'staging-4.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging/IIO driver fixes from Greg KH: "Here are a few small staging and iio driver fixes for -rc4. Nothing major, just a few small bugfixes for some reported issues, and a MAINTAINERS file update for the fbtft drivers. We also re-enable the building of the erofs filesystem as the XArray patches that were causing it to break never got merged in the -rc1 cycle, so there's no reason it can't be turned back on for now. The problem that was previously there is now being handled in the Xarray tree at the moment, so it will not hit us again in the future. All of these patches have been in linux-next with no reported issues" * tag 'staging-4.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: vboxvideo: Change address of scanout buffer on page-flip staging: vboxvideo: Fix IRQs no longer working staging: gasket: TODO: re-implement using UIO staging/fbtft: Update TODO and mailing lists staging: erofs: rename superblock flags (MS_xyz -> SB_xyz) iio: imu: st_lsm6dsx: take into account ts samples in wm configuration Revert "iio: temperature: maxim_thermocouple: add MAX31856 part" Revert "staging: erofs: disable compiling temporarile" MAINTAINERS: Switch a maintainer for drivers/staging/gasket staging: wilc1000: revert "fix TODO to compile spi and sdio components in single module"
This commit is contained in:
commit
45d9ab8a30
@ -5625,6 +5625,8 @@ F: lib/fault-inject.c
|
||||
|
||||
FBTFT Framebuffer drivers
|
||||
M: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
L: linux-fbdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/staging/fbtft/
|
||||
|
||||
@ -6060,7 +6062,7 @@ F: Documentation/gcc-plugins.txt
|
||||
|
||||
GASKET DRIVER FRAMEWORK
|
||||
M: Rob Springer <rspringer@google.com>
|
||||
M: John Joseph <jnjoseph@google.com>
|
||||
M: Todd Poynor <toddpoynor@google.com>
|
||||
M: Ben Chan <benchan@chromium.org>
|
||||
S: Maintained
|
||||
F: drivers/staging/gasket/
|
||||
|
@ -187,12 +187,15 @@ static int st_lsm6dsx_set_fifo_odr(struct st_lsm6dsx_sensor *sensor,
|
||||
|
||||
int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor, u16 watermark)
|
||||
{
|
||||
u16 fifo_watermark = ~0, cur_watermark, sip = 0, fifo_th_mask;
|
||||
u16 fifo_watermark = ~0, cur_watermark, fifo_th_mask;
|
||||
struct st_lsm6dsx_hw *hw = sensor->hw;
|
||||
struct st_lsm6dsx_sensor *cur_sensor;
|
||||
int i, err, data;
|
||||
__le16 wdata;
|
||||
|
||||
if (!hw->sip)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
|
||||
cur_sensor = iio_priv(hw->iio_devs[i]);
|
||||
|
||||
@ -203,14 +206,10 @@ int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor, u16 watermark)
|
||||
: cur_sensor->watermark;
|
||||
|
||||
fifo_watermark = min_t(u16, fifo_watermark, cur_watermark);
|
||||
sip += cur_sensor->sip;
|
||||
}
|
||||
|
||||
if (!sip)
|
||||
return 0;
|
||||
|
||||
fifo_watermark = max_t(u16, fifo_watermark, sip);
|
||||
fifo_watermark = (fifo_watermark / sip) * sip;
|
||||
fifo_watermark = max_t(u16, fifo_watermark, hw->sip);
|
||||
fifo_watermark = (fifo_watermark / hw->sip) * hw->sip;
|
||||
fifo_watermark = fifo_watermark * hw->settings->fifo_ops.th_wl;
|
||||
|
||||
err = regmap_read(hw->regmap, hw->settings->fifo_ops.fifo_th.addr + 1,
|
||||
|
@ -258,7 +258,6 @@ static int maxim_thermocouple_remove(struct spi_device *spi)
|
||||
static const struct spi_device_id maxim_thermocouple_id[] = {
|
||||
{"max6675", MAX6675},
|
||||
{"max31855", MAX31855},
|
||||
{"max31856", MAX31855},
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, maxim_thermocouple_id);
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
config EROFS_FS
|
||||
tristate "EROFS filesystem support"
|
||||
depends on BROKEN
|
||||
depends on BLOCK
|
||||
help
|
||||
EROFS(Enhanced Read-Only File System) is a lightweight
|
||||
read-only file system with modern designs (eg. page-sized
|
||||
|
@ -340,7 +340,7 @@ static int erofs_read_super(struct super_block *sb,
|
||||
goto err_sbread;
|
||||
|
||||
sb->s_magic = EROFS_SUPER_MAGIC;
|
||||
sb->s_flags |= MS_RDONLY | MS_NOATIME;
|
||||
sb->s_flags |= SB_RDONLY | SB_NOATIME;
|
||||
sb->s_maxbytes = MAX_LFS_FILESIZE;
|
||||
sb->s_time_gran = 1;
|
||||
|
||||
@ -627,7 +627,7 @@ static int erofs_remount(struct super_block *sb, int *flags, char *data)
|
||||
{
|
||||
BUG_ON(!sb_rdonly(sb));
|
||||
|
||||
*flags |= MS_RDONLY;
|
||||
*flags |= SB_RDONLY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2,3 +2,7 @@
|
||||
GPIO descriptor API in <linux/gpio/consumer.h> and look up GPIO
|
||||
lines from device tree, ACPI or board files, board files should
|
||||
use <linux/gpio/machine.h>
|
||||
|
||||
* convert all these over to drm_simple_display_pipe and submit for inclusion
|
||||
into the DRM subsystem under drivers/gpu/drm - fbdev doesn't take any new
|
||||
drivers anymore.
|
||||
|
@ -1,9 +1,22 @@
|
||||
This is a list of things that need to be done to get this driver out of the
|
||||
staging directory.
|
||||
|
||||
- Implement the gasket framework's functionality through UIO instead of
|
||||
introducing a new user-space drivers framework that is quite similar.
|
||||
|
||||
UIO provides the necessary bits to implement user-space drivers. Meanwhile
|
||||
the gasket APIs adds some extra conveniences like PCI BAR mapping, and
|
||||
MSI interrupts. Add these features to the UIO subsystem, then re-implement
|
||||
the Apex driver as a basic UIO driver instead (include/linux/uio_driver.h)
|
||||
|
||||
- Document sysfs files with Documentation/ABI/ entries.
|
||||
|
||||
- Use misc interface instead of major number for driver version description.
|
||||
|
||||
- Add descriptions of module_param's
|
||||
|
||||
- apex_get_status() should actually check status.
|
||||
|
||||
- "drivers" should never be dealing with "raw" sysfs calls or mess around with
|
||||
kobjects at all. The driver core should handle all of this for you
|
||||
automaically. There should not be a need for raw attribute macros.
|
||||
|
@ -59,6 +59,11 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
ret = PTR_ERR(dev);
|
||||
goto err_drv_alloc;
|
||||
}
|
||||
|
||||
ret = pci_enable_device(pdev);
|
||||
if (ret)
|
||||
goto err_pci_enable;
|
||||
|
||||
dev->pdev = pdev;
|
||||
pci_set_drvdata(pdev, dev);
|
||||
|
||||
@ -75,6 +80,8 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
err_drv_dev_register:
|
||||
vbox_driver_unload(dev);
|
||||
err_vbox_driver_load:
|
||||
pci_disable_device(pdev);
|
||||
err_pci_enable:
|
||||
drm_dev_put(dev);
|
||||
err_drv_alloc:
|
||||
return ret;
|
||||
|
@ -323,6 +323,11 @@ static int vbox_crtc_page_flip(struct drm_crtc *crtc,
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
mutex_lock(&vbox->hw_mutex);
|
||||
vbox_set_view(crtc);
|
||||
vbox_do_modeset(crtc, &crtc->mode);
|
||||
mutex_unlock(&vbox->hw_mutex);
|
||||
|
||||
spin_lock_irqsave(&drm->event_lock, flags);
|
||||
|
||||
if (event)
|
||||
|
@ -1,4 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-$(CONFIG_WILC1000) += wilc1000.o
|
||||
|
||||
ccflags-y += -DFIRMWARE_1002=\"atmel/wilc1002_firmware.bin\" \
|
||||
-DFIRMWARE_1003=\"atmel/wilc1003_firmware.bin\"
|
||||
@ -11,9 +12,7 @@ wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \
|
||||
wilc_wlan.o
|
||||
|
||||
obj-$(CONFIG_WILC1000_SDIO) += wilc1000-sdio.o
|
||||
wilc1000-sdio-objs += $(wilc1000-objs)
|
||||
wilc1000-sdio-objs += wilc_sdio.o
|
||||
|
||||
obj-$(CONFIG_WILC1000_SPI) += wilc1000-spi.o
|
||||
wilc1000-spi-objs += $(wilc1000-objs)
|
||||
wilc1000-spi-objs += wilc_spi.o
|
||||
|
@ -1038,8 +1038,8 @@ void wilc_netdev_cleanup(struct wilc *wilc)
|
||||
}
|
||||
|
||||
kfree(wilc);
|
||||
wilc_debugfs_remove();
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wilc_netdev_cleanup);
|
||||
|
||||
static const struct net_device_ops wilc_netdev_ops = {
|
||||
.ndo_init = mac_init_fn,
|
||||
@ -1062,7 +1062,6 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
|
||||
if (!wl)
|
||||
return -ENOMEM;
|
||||
|
||||
wilc_debugfs_init();
|
||||
*wilc = wl;
|
||||
wl->io_type = io_type;
|
||||
wl->hif_func = ops;
|
||||
@ -1124,3 +1123,6 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wilc_netdev_init);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -19,6 +19,7 @@ static struct dentry *wilc_dir;
|
||||
|
||||
#define DBG_LEVEL_ALL (DEBUG | INFO | WRN | ERR)
|
||||
static atomic_t WILC_DEBUG_LEVEL = ATOMIC_INIT(ERR);
|
||||
EXPORT_SYMBOL_GPL(WILC_DEBUG_LEVEL);
|
||||
|
||||
static ssize_t wilc_debug_level_read(struct file *file, char __user *userbuf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -87,7 +88,7 @@ static struct wilc_debugfs_info_t debugfs_info[] = {
|
||||
},
|
||||
};
|
||||
|
||||
int wilc_debugfs_init(void)
|
||||
static int __init wilc_debugfs_init(void)
|
||||
{
|
||||
int i;
|
||||
struct wilc_debugfs_info_t *info;
|
||||
@ -103,10 +104,12 @@ int wilc_debugfs_init(void)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
module_init(wilc_debugfs_init);
|
||||
|
||||
void wilc_debugfs_remove(void)
|
||||
static void __exit wilc_debugfs_remove(void)
|
||||
{
|
||||
debugfs_remove_recursive(wilc_dir);
|
||||
}
|
||||
module_exit(wilc_debugfs_remove);
|
||||
|
||||
#endif
|
||||
|
@ -417,6 +417,7 @@ void chip_allow_sleep(struct wilc *wilc)
|
||||
wilc->hif_func->hif_write_reg(wilc, 0xf0, reg & ~BIT(0));
|
||||
wilc->hif_func->hif_write_reg(wilc, 0xfa, 0);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(chip_allow_sleep);
|
||||
|
||||
void chip_wakeup(struct wilc *wilc)
|
||||
{
|
||||
@ -471,6 +472,7 @@ void chip_wakeup(struct wilc *wilc)
|
||||
}
|
||||
chip_ps_state = CHIP_WAKEDUP;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(chip_wakeup);
|
||||
|
||||
void wilc_chip_sleep_manually(struct wilc *wilc)
|
||||
{
|
||||
@ -484,6 +486,7 @@ void wilc_chip_sleep_manually(struct wilc *wilc)
|
||||
chip_ps_state = CHIP_SLEEPING_MANUAL;
|
||||
release_bus(wilc, RELEASE_ONLY);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wilc_chip_sleep_manually);
|
||||
|
||||
void host_wakeup_notify(struct wilc *wilc)
|
||||
{
|
||||
@ -491,6 +494,7 @@ void host_wakeup_notify(struct wilc *wilc)
|
||||
wilc->hif_func->hif_write_reg(wilc, 0x10b0, 1);
|
||||
release_bus(wilc, RELEASE_ONLY);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(host_wakeup_notify);
|
||||
|
||||
void host_sleep_notify(struct wilc *wilc)
|
||||
{
|
||||
@ -498,6 +502,7 @@ void host_sleep_notify(struct wilc *wilc)
|
||||
wilc->hif_func->hif_write_reg(wilc, 0x10ac, 1);
|
||||
release_bus(wilc, RELEASE_ONLY);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(host_sleep_notify);
|
||||
|
||||
int wilc_wlan_handle_txq(struct net_device *dev, u32 *txq_count)
|
||||
{
|
||||
@ -871,6 +876,7 @@ void wilc_handle_isr(struct wilc *wilc)
|
||||
|
||||
release_bus(wilc, RELEASE_ALLOW_SLEEP);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wilc_handle_isr);
|
||||
|
||||
int wilc_wlan_firmware_download(struct wilc *wilc, const u8 *buffer,
|
||||
u32 buffer_size)
|
||||
|
@ -831,6 +831,4 @@ struct wilc;
|
||||
int wilc_wlan_init(struct net_device *dev);
|
||||
u32 wilc_get_chipid(struct wilc *wilc, bool update);
|
||||
|
||||
int wilc_debugfs_init(void);
|
||||
void wilc_debugfs_remove(void);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user