Commit 8fd06d44 authored by Linus Torvalds's avatar Linus Torvalds

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
parents bdc83e00 a042d7fe
...@@ -21,7 +21,6 @@ ...@@ -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) ...@@ -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) ...@@ -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) {
return ret;
dev_err(&pcidev->dev, "enumeration failure %d.\n", ret); dev_err(&pcidev->dev, "enumeration failure %d.\n", ret);
disable_error_report_exit:
pci_disable_pcie_error_reporting(pcidev);
return ret; return ret;
}
return 0;
} }
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) ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment