Char/Misc driver fixes for 6.3-final
Here are some last-minute tiny driver fixes for 6.3-final. They include fixes for some fpga and iio drivers: - fpga bridge driver fix - fpga dfl error reporting fix - fpga m10bmc driver fix - fpga xilinx driver fix - iio light driver fix - iio dac fwhandle leak fix - iio adc driver fix All of these have been in linux-next for a few weeks with no reported problems. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZEKElg8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ylu9ACdGnBPgW7sZaIELlJXSL0n4zUAvM0AoNiOldn1 5ZjCjkAgyITm0rxSM32X =Q/Mx -----END PGP SIGNATURE----- Merge tag 'char-misc-6.3-final' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver fixes from Greg KH: "Here are some last-minute tiny driver fixes for 6.3-final. They include fixes for some fpga and iio drivers: - fpga bridge driver fix - fpga dfl error reporting fix - fpga m10bmc driver fix - fpga xilinx driver fix - iio light driver fix - iio dac fwhandle leak fix - iio adc driver fix All of these have been in linux-next for a few weeks with no reported problems" * tag 'char-misc-6.3-final' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: iio: light: tsl2772: fix reading proximity-diodes from device tree fpga: bridge: properly initialize bridge device before populating children iio: dac: ad5755: Add missing fwnode_handle_put() iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger() fpga: xilinx-pr-decoupler: Use readl wrapper instead of pure readl fpga: dfl-pci: Drop redundant pci_enable_pcie_error_reporting() fpga: m10bmc-sec: Fix rsu_send_data() to return FW_UPLOAD_ERR_HW_ERROR
This commit is contained in:
Коммит
8fd06d441e
|
@ -21,7 +21,6 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/stddef.h>
|
#include <linux/stddef.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/aer.h>
|
|
||||||
|
|
||||||
#include "dfl.h"
|
#include "dfl.h"
|
||||||
|
|
||||||
|
@ -376,10 +375,6 @@ int cci_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *pcidevid)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = pci_enable_pcie_error_reporting(pcidev);
|
|
||||||
if (ret && ret != -EINVAL)
|
|
||||||
dev_info(&pcidev->dev, "PCIE AER unavailable %d.\n", ret);
|
|
||||||
|
|
||||||
pci_set_master(pcidev);
|
pci_set_master(pcidev);
|
||||||
|
|
||||||
ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(64));
|
ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(64));
|
||||||
|
@ -387,24 +382,22 @@ int cci_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *pcidevid)
|
||||||
ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32));
|
ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32));
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&pcidev->dev, "No suitable DMA support available.\n");
|
dev_err(&pcidev->dev, "No suitable DMA support available.\n");
|
||||||
goto disable_error_report_exit;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = cci_init_drvdata(pcidev);
|
ret = cci_init_drvdata(pcidev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&pcidev->dev, "Fail to init drvdata %d.\n", ret);
|
dev_err(&pcidev->dev, "Fail to init drvdata %d.\n", ret);
|
||||||
goto disable_error_report_exit;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = cci_enumerate_feature_devs(pcidev);
|
ret = cci_enumerate_feature_devs(pcidev);
|
||||||
if (!ret)
|
if (ret) {
|
||||||
|
dev_err(&pcidev->dev, "enumeration failure %d.\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
dev_err(&pcidev->dev, "enumeration failure %d.\n", ret);
|
return 0;
|
||||||
|
|
||||||
disable_error_report_exit:
|
|
||||||
pci_disable_pcie_error_reporting(pcidev);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
|
static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
|
||||||
|
@ -448,7 +441,6 @@ static void cci_pci_remove(struct pci_dev *pcidev)
|
||||||
cci_pci_sriov_configure(pcidev, 0);
|
cci_pci_sriov_configure(pcidev, 0);
|
||||||
|
|
||||||
cci_remove_feature_devs(pcidev);
|
cci_remove_feature_devs(pcidev);
|
||||||
pci_disable_pcie_error_reporting(pcidev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct pci_driver cci_pci_driver = {
|
static struct pci_driver cci_pci_driver = {
|
||||||
|
|
|
@ -363,7 +363,6 @@ fpga_bridge_register(struct device *parent, const char *name,
|
||||||
bridge->dev.parent = parent;
|
bridge->dev.parent = parent;
|
||||||
bridge->dev.of_node = parent->of_node;
|
bridge->dev.of_node = parent->of_node;
|
||||||
bridge->dev.id = id;
|
bridge->dev.id = id;
|
||||||
of_platform_populate(bridge->dev.of_node, NULL, NULL, &bridge->dev);
|
|
||||||
|
|
||||||
ret = dev_set_name(&bridge->dev, "br%d", id);
|
ret = dev_set_name(&bridge->dev, "br%d", id);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -375,6 +374,8 @@ fpga_bridge_register(struct device *parent, const char *name,
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
of_platform_populate(bridge->dev.of_node, NULL, NULL, &bridge->dev);
|
||||||
|
|
||||||
return bridge;
|
return bridge;
|
||||||
|
|
||||||
error_device:
|
error_device:
|
||||||
|
|
|
@ -474,7 +474,7 @@ static enum fw_upload_err rsu_send_data(struct m10bmc_sec *sec)
|
||||||
|
|
||||||
ret = sec->ops->rsu_status(sec);
|
ret = sec->ops->rsu_status(sec);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return FW_UPLOAD_ERR_HW_ERROR;
|
||||||
status = ret;
|
status = ret;
|
||||||
|
|
||||||
if (!rsu_status_ok(status)) {
|
if (!rsu_status_ok(status)) {
|
||||||
|
|
|
@ -69,7 +69,7 @@ static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge)
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
status = readl(priv->io_base);
|
status = xlnx_pr_decouple_read(priv, CTRL_OFFSET);
|
||||||
|
|
||||||
clk_disable(priv->clk);
|
clk_disable(priv->clk);
|
||||||
|
|
||||||
|
|
|
@ -1409,7 +1409,7 @@ static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *indio,
|
||||||
trig = devm_iio_trigger_alloc(&indio->dev, "%s-dev%d-%s", indio->name,
|
trig = devm_iio_trigger_alloc(&indio->dev, "%s-dev%d-%s", indio->name,
|
||||||
iio_device_id(indio), trigger_name);
|
iio_device_id(indio), trigger_name);
|
||||||
if (!trig)
|
if (!trig)
|
||||||
return NULL;
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
trig->dev.parent = indio->dev.parent;
|
trig->dev.parent = indio->dev.parent;
|
||||||
iio_trigger_set_drvdata(trig, indio);
|
iio_trigger_set_drvdata(trig, indio);
|
||||||
|
|
|
@ -802,6 +802,7 @@ static struct ad5755_platform_data *ad5755_parse_fw(struct device *dev)
|
||||||
return pdata;
|
return pdata;
|
||||||
|
|
||||||
error_out:
|
error_out:
|
||||||
|
fwnode_handle_put(pp);
|
||||||
devm_kfree(dev, pdata);
|
devm_kfree(dev, pdata);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -601,6 +601,7 @@ static int tsl2772_read_prox_diodes(struct tsl2772_chip *chip)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
chip->settings.prox_diode = prox_diode_mask;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче