Messages in this thread | | | Date | Thu, 28 May 2020 16:13:07 +0300 | From | Serge Semin <> | Subject | Re: [PATCH v3 5/6] bus: Add Baikal-T1 APB-bus driver |
| |
On Thu, May 28, 2020 at 02:17:17PM +0200, Arnd Bergmann wrote: > On Tue, May 26, 2020 at 2:59 PM Serge Semin > <Sergey.Semin@baikalelectronics.ru> wrote: > > > > Baikal-T1 AXI-APB bridge is used to access the SoC subsystem CSRs. > > IO requests are routed to this bus by means of the DW AMBA 3 AXI > > Interconnect. In case if an attempted APB transaction stays with no > > response for a pre-defined time an interrupt occurs and the bus gets > > freed for a next operation. This driver provides the interrupt handler > > to detect the erroneous address, prints an error message about the > > address fault, updates an errors counter. The counter and the APB-bus > > operations timeout can be accessed via corresponding sysfs nodes. > > A dedicated sysfs-node can be also used to artificially cause the > > bus errors described above. > > > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru> > > Cc: Paul Burton <paulburton@kernel.org> > > Cc: Olof Johansson <olof@lixom.net> > > Cc: Rob Herring <robh+dt@kernel.org> > > Cc: linux-mips@vger.kernel.org > > Cc: soc@kernel.org > > Cc: devicetree@vger.kernel.org > > > > --- > > Applied with this fixup:
I'm afraid linux/io.h is also needed here.(
-Sergey
> > --- a/drivers/bus/bt1-apb.c > +++ b/drivers/bus/bt1-apb.c > @@ -16,6 +16,7 @@ > #include <linux/platform_device.h> > #include <linux/interrupt.h> > #include <linux/nmi.h> > +#include <linux/of.h> > #include <linux/regmap.h> > #include <linux/clk.h> > #include <linux/reset.h> > @@ -309,13 +310,13 @@ static ssize_t timeout_store(struct device *dev, > } > static DEVICE_ATTR_RW(timeout); > > -static int inject_error_show(struct device *dev, struct device_attribute *attr, > +static ssize_t inject_error_show(struct device *dev, struct > device_attribute *attr, > char *buf) > { > return scnprintf(buf, PAGE_SIZE, "Error injection: nodev irq\n"); > } > > -static int inject_error_store(struct device *dev, > +static ssize_t inject_error_store(struct device *dev, > struct device_attribute *attr, > const char *data, size_t count) > {
| |