Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AXI performance monitor driver #2222

Merged
merged 1 commit into from
Nov 14, 2017
Merged

Conversation

JamesH65
Copy link
Contributor

@JamesH65 JamesH65 commented Oct 11, 2017

Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Copy link
Contributor

@pelwell pelwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Device tree is supposed to describe the hardware, not specify a driver. I don't see any reason not call this bcm2835-axiperf, even though we wrote it.

I've hit my comments limit. Try running checkpatch and I'll have another go on the result.

},
};

static int __init rpi_axiperf_init(void)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace from this line...

}

module_init(rpi_axiperf_init);
module_exit(rpi_axiperf_exit);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...to this one, inclusive, with:

module_platform_driver(rpi_axiperf_driver);

// Now storage for the per monitor settings and the resulting
// performance figures
struct
{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't forget to stick to the ugly kernel brace placement rules.

// Record results from the three Bus watchers per monitor and push to the sysfs

// General reg
const int GEN_CTRL = 0x00;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The kernel devs prefer #defines to const ints (go figure), but if you choose to stick with consts you'll have to change the symbols to lower case.

int i;
void __iomem *addr = state->monitor[monitor].base_address
+ watcher + BW_ATRANS_OFFSET;
for (i=0;i<NUM_BUS_WATCHER_RESULTS ;i++, addr+=4)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spaces after semicolons here, none before.

* spread our 3 actual monitors over them
*/
num_buses[monitor] = hweight32(state->monitor[monitor].bus_enabled);
num_buses[monitor] = min(num_buses[monitor],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The double assignment gave me a momentary WTF... It looks like the line is already over-long, so why not split it like this instead?

		num_buses[monitor] = min(
			hweight32(state->monitor[monitor].bus_enabled),
			NUM_BUS_WATCHERS_PER_MONITOR);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But see previous comment about a local pointer to state->monitor[monitor].

// No, disable all monitoring for this monitor
set_monitor_control(monitor, GEN_CTL_RESET_BIT);
} else {
int i;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The indentation for this section is wrong. You've got enough logic in here that you might want to split out a helper function.


for (monitor = 0; monitor < NUM_MONITORS; monitor++) {
// Anything enabled?
if (state->monitor[monitor].bus_enabled == 0) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This loop is crying out for a local pointer to replace "state->monitor[monitor]".

do {
state->monitor[monitor].last_monitored++;
state->monitor[monitor].last_monitored &= 0xf; //wrap around
} while ((state->monitor[monitor].bus_enabled &
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kernel devs prefer "!x" to "x == 0".

@JamesH65
Copy link
Contributor Author

I've pushed a much cleaned up version. Please be gentle.

@popcornmix popcornmix force-pushed the rpi-4.13.y branch 3 times, most recently from f4b3ddd to ecbbac9 Compare October 22, 2017 12:37
@JamesH65
Copy link
Contributor Author

@pelwell @6by9 Should be mostly checkpatch compliant....couple of long lines I don't know what to do with - splitting would make it look fairly horrible.

popcornmix added a commit to raspberrypi/firmware that referenced this pull request Oct 24, 2017
firmware: New mailbox fns for peripheral access
See: raspberrypi/linux#2222
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this pull request Oct 24, 2017
firmware: New mailbox fns for peripheral access
See: raspberrypi/linux#2222
@JamesH65 JamesH65 dismissed pelwell’s stale review October 25, 2017 10:50

Dismissed, waiting for next review

@JamesH65
Copy link
Contributor Author

JamesH65 commented Nov 2, 2017

@popcornmix @pelwell @6by9 I have updated to latest tree so this can now be merged if it is regarded as OK. COuld probably still do with some good 'ole revoooing.

@JamesH65 JamesH65 changed the title AXI performance monitor driver - RFC AXI performance monitor driver Nov 2, 2017

/* Two monitors, System and VPU, each with the following register sets
* Each monitor can only monitor one bus at a time, so we time share them,
* giving each bus 100ms (default, settable via debufs) of time on its
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/debufs/debugfs


#include <linux/device.h>
#include <linux/debugfs.h>
#include <linux/netdevice.h>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream would whinge about alphabetical order.


struct rpi_firmware *firmware;

// Sample time spent on for each bus
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Phil: Are we being fussy about /* */ commenting over C99 // ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not fussed provided checkpatch is happy.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll change them all anyway.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I not looking at the latest, or are we ignoring them (somehow checkpatch is letting that through).
Ah, I have --strict --codespell set as arguments to checkpatch by default (although that is still allowing C99 commenting!)

* raspberrypi_axi_monitor.c
*
* Created on: 26 Sep 2017
* Author: jamesh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full name?


static struct rpi_axiperf *state;

/* Two monitors, System and VPU, each with the following register sets
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fullstop on the end of the line.
Upstream typically want:

/*
 * Comments here
 */

for multi line comments.

// general registers
const int GEN_CTRL;

const int GEN_CTL_ENABLE_BIT = 0x01;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the BIT(x) macros throughout?
GENMASK(<top_bit>, <bottom_bit>) for masks.

const int BW_CTRL_BUS_WATCH_MASK = 0x3d << 0; // 6 bits
const int BW_CTRL_BUS_FILTER_SHIFT = 8;

static char *bus_filter_strings[] = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const for all these arrays and sizes?

if (kthread_should_stop())
return 0;

msleep(100);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments said default was 100ms settable in debugfs, or is this a different delay?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OOOh, bug, that shouldn't be there I don't think.

return PTR_ERR(state->monitor[i].base_address);

// Enable all buses by default
state->monitor[i].bus_enabled = 0xffff;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All enabled by default, and driver enabled in DT. Is that the desired default? Does it have any real overhead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intention is for this module only to be built in if specifically requested for debugging purposes, overhead in the not built case is clearly 0, but there is overhead when it is installed and running.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In which case shouldn't the default status in DT be "disabled"? It's currently "okay" in bcm270x.dtsi.

(Or have it in the build but disabled in DT by default? Still zero overhead for most, but easier to enable when desired).

.probe = rpi_axiperf_probe,
.remove = rpi_axiperf_remove,
.driver = {
.name = "bcm2835-axiperf",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same discussion as with the GPIO expander driver. This isn't generic for the BCM283x chips as it relies on the firmware.
"raspberrypi,axiperf" instead? (It is meant to be "vendor,driver", and you had no vendor)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We haven't always followed the principle, but device tree is supposed to describe the hardware, not the driver. The performance monitors are Broadcom parts, even if the driver is pi-specific.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, change the function names to bcm-blah-blah instead of rpi-blah-blah as well as the driver name?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I'm agreeing with you. I think the DT compatible string should remain "bcm2835,axiperf", and I'm happy with the downstream "rpi" function names. I'd go further and change the driver name to include "rpi" or "raspberrypi".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll defer to Phil on this, but the usage is a hybrid where half of it is talking to the firmware (compatible string "raspberrypi,bcm2835-firmware") and not directly to the hardware.

static ssize_t mywriter(struct file *fp, const char __user *user_buffer,
size_t count, loff_t *position)
{
// TODO: this really needs to zero the registers, not this stuff.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you going to implement this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will remove the comment - its not really necessary. I'd like to leave the function so it can be used at a later date although I suspect upstream wouldn't like that.

.probe = rpi_axiperf_probe,
.remove = rpi_axiperf_remove,
.driver = {
.name = "bcm2835-axiperf",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We haven't always followed the principle, but device tree is supposed to describe the hardware, not the driver. The performance monitors are Broadcom parts, even if the driver is pi-specific.


// Special case for the VPU monitor, we must use the mailbox interface
// as it is not accessible from the ARM address space.
state->monitor[VPU_MONITOR].use_mailbox_interface = 1;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, an extra one.
This is a nasty dependency between driver and DT that the addresses for the VPU_MONITOR must be second in the DT list of regs. Is there a better way of reflecting that?

You've also hard coded the address as 0x7ee08000 at line 551, so the DT value doesn't actually matter.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's hardcoded, because the values I was getting back were not the ones I had in the DT entry, and I never figured out why. Probably should look at that but not got too much time for polishing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are precedents for defining an order for items under reg. The alternative is to have a reg-names property containing an array of names, and use platform_get_resource_byname().

The reason the address has changed is that the bus address has been converted into an ARM address. You can retrieve the original value using of_get_property_read_u32_index() or of_get_property_read_u32_array().

@JamesH65
Copy link
Contributor Author

JamesH65 commented Nov 2, 2017 via email

@JamesH65 JamesH65 force-pushed the AxiPerfMonPR branch 2 times, most recently from 2e52aff to d7c8487 Compare November 3, 2017 14:49
@JamesH65
Copy link
Contributor Author

JamesH65 commented Nov 3, 2017

@pelwell @6by9 Have just pushed new commit which hopefully covers the points above.

Copy link
Contributor

@6by9 6by9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally happy.

/*
* raspberrypi_axi_monitor.c
*
* Created on: 26 Sep 2017
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Odd line to have in the header.

Copy link
Contributor Author

@JamesH65 JamesH65 Nov 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, added by Eclipse when I created the file. Can remove.


struct rpi_firmware *firmware;

// Sample time spent on for each bus
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I not looking at the latest, or are we ignoring them (somehow checkpatch is letting that through).
Ah, I have --strict --codespell set as arguments to checkpatch by default (although that is still allowing C99 commenting!)

reg = <0x7e009800 0x100>,
<0x7ee08000 0x100>;
firmware = <&firmware>;
status = "okay";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pelwell Are you happy for this to be enabled by default even though the driver won't be built?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'd rather have it disabled at this level then enabled higher up, e.g. by bcm2708-rpi.dtsi (even though the two are equivalent).

In general it seems to be frowned on to introduce nodes with an explicit status of "okay", since that is the default.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea what to put here, I copied that section from another section, so do not know what the status parameter actually means.

Copy link
Contributor

@6by9 6by9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nit-picking.

state->firmware = rpi_firmware_get(fw_node);
if (!state->firmware)
{
dev_err(dev, "Probe deferred\n");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dev_err is a touch high for a probe deferral.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, see previous comment.


const static char *monitor_name[] = {
"System Monitor",
"VPU Monitor"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are also the directory names and they have spaces in :-(
We know these are going to be monitoring things, so is the word "monitor" really required in either case?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bugger, put those in this morning for debugging, forgot to take them out. Inclined to remove both.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oop, wrong comment. I'll remove spaces, been meaning to for ages anyway...

popcornmix pushed a commit that referenced this pull request Oct 10, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 10, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 14, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 14, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 17, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 21, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 23, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Oct 28, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 1, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 5, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 6, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 8, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 11, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 18, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 18, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 18, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 25, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Nov 25, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Dec 7, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Dec 9, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Dec 10, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Dec 16, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Dec 16, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Dec 20, 2024
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Jan 2, 2025
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Jan 2, 2025
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Jan 6, 2025
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Jan 10, 2025
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Jan 13, 2025
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
popcornmix pushed a commit that referenced this pull request Jan 17, 2025
Uses the debugfs I/F to provide access to the AXI
bus performance monitors.

Requires the new mailbox peripheral access for access
to the VPU performance registers, system bus access
is done using direct register reads.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>

raspberrypi_axi_monitor: suppress warning

Suppress the following warning by casting the pointer to and uintptr_t
before to u32:

Signed-off-by: Matteo Croce <mcroce@redhat.com>

perf/raspberry: Add support for 2712 axi performance monitors

Also handle 2711 correctly which has a different configuration
from 2835.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants