mirror of
https://github.com/corundum/corundum.git
synced 2025-01-16 08:12:53 +08:00
modules/mqnic: Assert reset during probe of platform device, if connected
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
parent
64cdae1ccf
commit
f553be3b65
@ -37,6 +37,7 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
#include <linux/reset.h>
|
||||||
#include <linux/rtc.h>
|
#include <linux/rtc.h>
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
|
||||||
@ -747,6 +748,7 @@ static int mqnic_platform_probe(struct platform_device *pdev)
|
|||||||
struct mqnic_dev *mqnic;
|
struct mqnic_dev *mqnic;
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
|
struct reset_control *rst;
|
||||||
|
|
||||||
dev_info(dev, DRIVER_NAME " platform probe");
|
dev_info(dev, DRIVER_NAME " platform probe");
|
||||||
|
|
||||||
@ -770,6 +772,17 @@ static int mqnic_platform_probe(struct platform_device *pdev)
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
// Reset device
|
||||||
|
rst = devm_reset_control_get(dev, NULL);
|
||||||
|
if (IS_ERR(rst)) {
|
||||||
|
dev_warn(dev, "Cannot control device reset");
|
||||||
|
} else {
|
||||||
|
dev_info(dev, "Resetting device");
|
||||||
|
reset_control_assert(rst);
|
||||||
|
udelay(2);
|
||||||
|
reset_control_deassert(rst);
|
||||||
|
}
|
||||||
|
|
||||||
// Reserve and map regions
|
// Reserve and map regions
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
mqnic->hw_regs_size = resource_size(res);
|
mqnic->hw_regs_size = resource_size(res);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user