All of lore.kernel.org
 help / color / mirror / Atom feed
From: Auger Eric <eric.auger@redhat.com>
To: Vikas Gupta <vikas.gupta@broadcom.com>,
	alex.williamson@redhat.com, cohuck@redhat.com,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: vikram.prakash@broadcom.com, srinath.mannam@broadcom.com,
	ashwin.kamath@broadcom.com, zachary.schroff@broadcom.com,
	manish.kurup@broadcom.com
Subject: Re: [RFC v3 2/2] vfio/platform: msi: add Broadcom platform devices
Date: Tue, 12 Jan 2021 10:22:20 +0100	[thread overview]
Message-ID: <b3dcbca3-c85a-d327-e64e-5830286dfbba@redhat.com> (raw)
In-Reply-To: <20201214174514.22006-3-vikas.gupta@broadcom.com>

Hi Vikas,

On 12/14/20 6:45 PM, Vikas Gupta wrote:
> Add msi support for Broadcom platform devices
> 
> Signed-off-by: Vikas Gupta <vikas.gupta@broadcom.com>
> ---
>  drivers/vfio/platform/Kconfig                 |  1 +
>  drivers/vfio/platform/Makefile                |  1 +
>  drivers/vfio/platform/msi/Kconfig             |  9 ++++
>  drivers/vfio/platform/msi/Makefile            |  2 +
>  .../vfio/platform/msi/vfio_platform_bcmplt.c  | 49 +++++++++++++++++++
>  5 files changed, 62 insertions(+)
>  create mode 100644 drivers/vfio/platform/msi/Kconfig
>  create mode 100644 drivers/vfio/platform/msi/Makefile
>  create mode 100644 drivers/vfio/platform/msi/vfio_platform_bcmplt.c
what does plt mean?
> 
> diff --git a/drivers/vfio/platform/Kconfig b/drivers/vfio/platform/Kconfig
> index dc1a3c44f2c6..7b8696febe61 100644
> --- a/drivers/vfio/platform/Kconfig
> +++ b/drivers/vfio/platform/Kconfig
> @@ -21,3 +21,4 @@ config VFIO_AMBA
>  	  If you don't know what to do here, say N.
>  
>  source "drivers/vfio/platform/reset/Kconfig"
> +source "drivers/vfio/platform/msi/Kconfig"
> diff --git a/drivers/vfio/platform/Makefile b/drivers/vfio/platform/Makefile
> index 3f3a24e7c4ef..9ccdcdbf0e7e 100644
> --- a/drivers/vfio/platform/Makefile
> +++ b/drivers/vfio/platform/Makefile
> @@ -5,6 +5,7 @@ vfio-platform-y := vfio_platform.o
>  obj-$(CONFIG_VFIO_PLATFORM) += vfio-platform.o
>  obj-$(CONFIG_VFIO_PLATFORM) += vfio-platform-base.o
>  obj-$(CONFIG_VFIO_PLATFORM) += reset/
> +obj-$(CONFIG_VFIO_PLATFORM) += msi/
>  
>  vfio-amba-y := vfio_amba.o
>  
> diff --git a/drivers/vfio/platform/msi/Kconfig b/drivers/vfio/platform/msi/Kconfig
> new file mode 100644
> index 000000000000..54d6b70e1e32
> --- /dev/null
> +++ b/drivers/vfio/platform/msi/Kconfig
> @@ -0,0 +1,9 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +config VFIO_PLATFORM_BCMPLT_MSI
> +	tristate "MSI support for Broadcom platform devices"
> +	depends on VFIO_PLATFORM && (ARCH_BCM_IPROC || COMPILE_TEST)
> +	default ARCH_BCM_IPROC
> +	help
> +	  Enables the VFIO platform driver to handle msi for Broadcom devices
> +
> +	  If you don't know what to do here, say N.
> diff --git a/drivers/vfio/platform/msi/Makefile b/drivers/vfio/platform/msi/Makefile
> new file mode 100644
> index 000000000000..27422d45cecb
> --- /dev/null
> +++ b/drivers/vfio/platform/msi/Makefile
> @@ -0,0 +1,2 @@
> +# SPDX-License-Identifier: GPL-2.0
> +obj-$(CONFIG_VFIO_PLATFORM_BCMPLT_MSI) += vfio_platform_bcmplt.o
> diff --git a/drivers/vfio/platform/msi/vfio_platform_bcmplt.c b/drivers/vfio/platform/msi/vfio_platform_bcmplt.c
> new file mode 100644
> index 000000000000..a074b5e92d77
> --- /dev/null
> +++ b/drivers/vfio/platform/msi/vfio_platform_bcmplt.c
> @@ -0,0 +1,49 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright 2020 Broadcom.
> + */
> +
> +#include <linux/module.h>
> +#include <linux/device.h>
> +#include <linux/interrupt.h>
> +#include <linux/msi.h>
> +#include <linux/vfio.h>
> +
> +#include "../vfio_platform_private.h"
> +
> +#define RING_SIZE		(64 << 10)
> +
> +#define RING_MSI_ADDR_LS	0x03c
> +#define RING_MSI_ADDR_MS	0x040
> +#define RING_MSI_DATA_VALUE	0x064
Those 3 defines would not be needed anymore with that implementation option.
> +
> +static u32 bcm_num_msi(struct vfio_platform_device *vdev)
> +{
> +	struct vfio_platform_region *reg = &vdev->regions[0];
> +
> +	return (reg->size / RING_SIZE);
> +}
> +
> +static struct vfio_platform_msi_node vfio_platform_bcmflexrm_msi_node = {
> +	.owner = THIS_MODULE,
> +	.compat = "brcm,iproc-flexrm-mbox",
> +	.of_get_msi = bcm_num_msi,
> +};
> +
> +static int __init vfio_platform_bcmflexrm_msi_module_init(void)
> +{
> +	__vfio_platform_register_msi(&vfio_platform_bcmflexrm_msi_node);
> +
> +	return 0;
> +}
> +
> +static void __exit vfio_platform_bcmflexrm_msi_module_exit(void)
> +{
> +	vfio_platform_unregister_msi("brcm,iproc-flexrm-mbox");
> +}
> +
> +module_init(vfio_platform_bcmflexrm_msi_module_init);
> +module_exit(vfio_platform_bcmflexrm_msi_module_exit);
One thing I would like to discuss with Alex.

As the reset module is mandated (except if reset_required is forced to
0), I am wondering if we shouldn't try to turn the reset module into a
"specialization" module and put the msi hooks there. I am afraid we may
end up having modules for each and every vfio platform feature
specialization. At the moment that's fully bearable but I can't predict
what's next.

As the mandated feature is the reset capability maybe we could just keep
the config/module name terminology, tune the kconfig help message to
mention the msi support in case of flex-rm?

What do you think?

Thanks

Eric




> +
> +MODULE_LICENSE("GPL v2");
> +MODULE_AUTHOR("Broadcom");
> 


  reply	other threads:[~2021-01-12  9:24 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-05  6:02 [RFC, v0 0/3] msi support for platform devices Vikas Gupta
2020-11-05  6:02 ` [RFC, v0 1/3] vfio/platform: add support for msi Vikas Gupta
2020-11-05  7:08   ` Alex Williamson
2020-11-06  2:54     ` Vikas Gupta
2020-11-06  3:12       ` Alex Williamson
2020-11-09  6:41         ` Vikas Gupta
2020-11-09 15:18           ` Auger Eric
2020-11-09 15:28           ` Alex Williamson
2020-11-10 11:06             ` Vikas Gupta
2020-11-09 15:05       ` Auger Eric
2020-11-10 11:01         ` Vikas Gupta
2020-11-05  6:02 ` [RFC, v0 2/3] vfio/platform: change cleanup order Vikas Gupta
2020-11-05  6:02 ` [RFC, v0 3/3] vfio/platform: add Broadcom msi module Vikas Gupta
2020-11-12 17:58 ` [RFC, v1 0/3] msi support for platform devices Vikas Gupta
2020-11-12 17:58   ` [RFC v1 1/3] vfio/platform: add support for msi Vikas Gupta
2020-11-12 17:58   ` [RFC v1 2/3] vfio/platform: change cleanup order Vikas Gupta
2020-11-12 17:58   ` [RFC v1 3/3] vfio/platform: add Broadcom msi module Vikas Gupta
2020-11-12 18:40   ` [RFC, v1 0/3] msi support for platform devices Auger Eric
2020-11-13 17:24     ` Vikas Gupta
2020-11-16 13:14       ` Auger Eric
2020-11-17  6:25         ` Vikas Gupta
2020-11-17  8:05           ` Auger Eric
2020-11-17  8:25             ` Auger Eric
2020-11-17 16:36               ` Vikas Gupta
2020-11-18 11:00                 ` Auger Eric
2020-11-24 16:16   ` [RFC, v2 0/1] " Vikas Gupta
2020-11-24 16:16     ` [RFC v2 1/1] vfio/platform: add support for msi Vikas Gupta
2020-12-02 14:44       ` Auger Eric
2020-12-03 14:50         ` Vikas Gupta
2020-12-07 20:43           ` Auger Eric
2020-12-10  7:34             ` Vikas Gupta
2020-12-11  8:40               ` Auger Eric
2020-12-02 14:43     ` [RFC, v2 0/1] msi support for platform devices Auger Eric
2020-12-03 14:39       ` Vikas Gupta
2020-12-14 17:45     ` [RFC, v3 0/2] " Vikas Gupta
2020-12-14 17:45       ` [RFC v3 1/2] vfio/platform: add support for msi Vikas Gupta
2020-12-22 17:27         ` Auger Eric
2021-01-05  5:53           ` Vikas Gupta
2021-01-12  9:00             ` Auger Eric
2021-01-15  6:26               ` Vikas Gupta
2021-01-15  9:25                 ` Auger Eric
2020-12-27  8:44         ` kernel test robot
2020-12-14 17:45       ` [RFC v3 2/2] vfio/platform: msi: add Broadcom platform devices Vikas Gupta
2021-01-12  9:22         ` Auger Eric [this message]
2021-01-15  6:35           ` Vikas Gupta
2021-01-15  9:24             ` Auger Eric
2021-01-19 22:45               ` Alex Williamson
2021-01-20 10:22                 ` Auger Eric
2021-01-29 17:24       ` [RFC v4 0/3] msi support for " Vikas Gupta
2021-01-29 17:24         ` [RFC v4 1/3] vfio/platform: add support for msi Vikas Gupta
2021-02-08 13:30           ` Auger Eric
2021-01-29 17:24         ` [RFC v4 2/3] vfio/platform: change cleanup order Vikas Gupta
2021-02-08 13:31           ` Auger Eric
2021-01-29 17:24         ` [RFC v4 3/3] vfio: platform: reset: add msi support Vikas Gupta
2021-02-08 15:27           ` Auger Eric

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b3dcbca3-c85a-d327-e64e-5830286dfbba@redhat.com \
    --to=eric.auger@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=ashwin.kamath@broadcom.com \
    --cc=cohuck@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manish.kurup@broadcom.com \
    --cc=srinath.mannam@broadcom.com \
    --cc=vikas.gupta@broadcom.com \
    --cc=vikram.prakash@broadcom.com \
    --cc=zachary.schroff@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.