From: Matthias Brugger <matthias.bgg@gmail.com> To: Liming Sun <lsun@mellanox.com>, y@bu-lab53.mtbu.labs.mlnx, Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>, David Woods <dwoods@mellanox.com>, Robin Murphy <robin.murphy@arm.com>, arm-soc <arm@kernel.org> Cc: devicetree@vger.kernel.org, "mbrugger@suse.com >> Matthias Brugger" <mbrugger@suse.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v6 1/9] soc: Add TmFifo driver for Mellanox BlueField Soc Date: Thu, 13 Dec 2018 00:07:42 +0100 [thread overview] Message-ID: <23fff14b-0e44-651c-1dfd-8f8e07c7eaee@gmail.com> (raw) In-Reply-To: <1541089431-175572-1-git-send-email-lsun@mellanox.com> On 01/11/2018 17:23, Liming Sun wrote:> This commit adds the TmFifo driver for Mellanox BlueField Soc. > TmFifo is a shared FIFO which enables external host machine to > exchange data with the SoC via USB or PCIe. The driver is based on > virtio framework and has console and network access enabled. > > Reviewed-by: David Woods <dwoods@mellanox.com> > Signed-off-by: Liming Sun <lsun@mellanox.com> > --- > drivers/soc/Kconfig | 1 + > drivers/soc/Makefile | 1 + > drivers/soc/mellanox/Kconfig | 18 + > drivers/soc/mellanox/Makefile | 5 + > drivers/soc/mellanox/tmfifo.c | 1236 ++++++++++++++++++++++++++++++++++++ > drivers/soc/mellanox/tmfifo_regs.h | 76 +++ > 6 files changed, 1337 insertions(+) > create mode 100644 drivers/soc/mellanox/Kconfig > create mode 100644 drivers/soc/mellanox/Makefile > create mode 100644 drivers/soc/mellanox/tmfifo.c > create mode 100644 drivers/soc/mellanox/tmfifo_regs.h > [...] > + > +/* Interrupt handler. */ > +static irqreturn_t tmfifo_irq_handler(int irq, void *dev_id) > +{ > + int i = (uintptr_t)dev_id % sizeof(void *); > + struct tmfifo *fifo = dev_id - i; > + > + if (i < TM_IRQ_CNT && !test_and_set_bit(i, &fifo->pend_events)) > + schedule_work(&fifo->work); > + > + return IRQ_HANDLED; > +} > + [...] > + > +/* Probe the TMFIFO. */ > +static int tmfifo_probe(struct platform_device *pdev) > +{ > + u64 ctl; > + struct tmfifo *fifo; > + struct resource *rx_res, *tx_res; > + struct virtio_net_config net_config; > + int i, ret; > + > + /* Get the resource of the Rx & Tx FIFO. */ > + rx_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + tx_res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > + if (!rx_res || !tx_res) { > + ret = -EINVAL; > + goto err; > + } > + > + if (request_mem_region(rx_res->start, > + resource_size(rx_res), "bf-tmfifo") == NULL) { > + ret = -EBUSY; > + goto early_err; > + } > + > + if (request_mem_region(tx_res->start, > + resource_size(tx_res), "bf-tmfifo") == NULL) { > + release_mem_region(rx_res->start, resource_size(rx_res)); > + ret = -EBUSY; > + goto early_err; > + } > + > + ret = -ENOMEM; > + fifo = kzalloc(sizeof(struct tmfifo), GFP_KERNEL); > + if (!fifo) > + goto err; > + > + fifo->pdev = pdev; > + platform_set_drvdata(pdev, fifo); > + > + spin_lock_init(&fifo->spin_lock); > + INIT_WORK(&fifo->work, tmfifo_work_handler); > + > + timer_setup(&fifo->timer, tmfifo_timer, 0); > + fifo->timer.function = tmfifo_timer; > + > + for (i = 0; i < TM_IRQ_CNT; i++) { > + fifo->irq[i] = platform_get_irq(pdev, i); > + ret = request_irq(fifo->irq[i], tmfifo_irq_handler, 0, > + "tmfifo", (u8 *)fifo + i); I think it would be better if you create a struct that passes a pointer to fifo and the ID instead of "hiding" the ID inside the address. Regards, Matthias
WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com> To: Liming Sun <lsun@mellanox.com>, y@bu-lab53.mtbu.labs.mlnx, Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>, David Woods <dwoods@mellanox.com>, Robin Murphy <robin.murphy@arm.com>, arm-soc <arm@kernel.org> Cc: devicetree@vger.kernel.org, "mbrugger@suse.com >> Matthias Brugger" <mbrugger@suse.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v6 1/9] soc: Add TmFifo driver for Mellanox BlueField Soc Date: Thu, 13 Dec 2018 00:07:42 +0100 [thread overview] Message-ID: <23fff14b-0e44-651c-1dfd-8f8e07c7eaee@gmail.com> (raw) In-Reply-To: <1541089431-175572-1-git-send-email-lsun@mellanox.com> On 01/11/2018 17:23, Liming Sun wrote:> This commit adds the TmFifo driver for Mellanox BlueField Soc. > TmFifo is a shared FIFO which enables external host machine to > exchange data with the SoC via USB or PCIe. The driver is based on > virtio framework and has console and network access enabled. > > Reviewed-by: David Woods <dwoods@mellanox.com> > Signed-off-by: Liming Sun <lsun@mellanox.com> > --- > drivers/soc/Kconfig | 1 + > drivers/soc/Makefile | 1 + > drivers/soc/mellanox/Kconfig | 18 + > drivers/soc/mellanox/Makefile | 5 + > drivers/soc/mellanox/tmfifo.c | 1236 ++++++++++++++++++++++++++++++++++++ > drivers/soc/mellanox/tmfifo_regs.h | 76 +++ > 6 files changed, 1337 insertions(+) > create mode 100644 drivers/soc/mellanox/Kconfig > create mode 100644 drivers/soc/mellanox/Makefile > create mode 100644 drivers/soc/mellanox/tmfifo.c > create mode 100644 drivers/soc/mellanox/tmfifo_regs.h > [...] > + > +/* Interrupt handler. */ > +static irqreturn_t tmfifo_irq_handler(int irq, void *dev_id) > +{ > + int i = (uintptr_t)dev_id % sizeof(void *); > + struct tmfifo *fifo = dev_id - i; > + > + if (i < TM_IRQ_CNT && !test_and_set_bit(i, &fifo->pend_events)) > + schedule_work(&fifo->work); > + > + return IRQ_HANDLED; > +} > + [...] > + > +/* Probe the TMFIFO. */ > +static int tmfifo_probe(struct platform_device *pdev) > +{ > + u64 ctl; > + struct tmfifo *fifo; > + struct resource *rx_res, *tx_res; > + struct virtio_net_config net_config; > + int i, ret; > + > + /* Get the resource of the Rx & Tx FIFO. */ > + rx_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + tx_res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > + if (!rx_res || !tx_res) { > + ret = -EINVAL; > + goto err; > + } > + > + if (request_mem_region(rx_res->start, > + resource_size(rx_res), "bf-tmfifo") == NULL) { > + ret = -EBUSY; > + goto early_err; > + } > + > + if (request_mem_region(tx_res->start, > + resource_size(tx_res), "bf-tmfifo") == NULL) { > + release_mem_region(rx_res->start, resource_size(rx_res)); > + ret = -EBUSY; > + goto early_err; > + } > + > + ret = -ENOMEM; > + fifo = kzalloc(sizeof(struct tmfifo), GFP_KERNEL); > + if (!fifo) > + goto err; > + > + fifo->pdev = pdev; > + platform_set_drvdata(pdev, fifo); > + > + spin_lock_init(&fifo->spin_lock); > + INIT_WORK(&fifo->work, tmfifo_work_handler); > + > + timer_setup(&fifo->timer, tmfifo_timer, 0); > + fifo->timer.function = tmfifo_timer; > + > + for (i = 0; i < TM_IRQ_CNT; i++) { > + fifo->irq[i] = platform_get_irq(pdev, i); > + ret = request_irq(fifo->irq[i], tmfifo_irq_handler, 0, > + "tmfifo", (u8 *)fifo + i); I think it would be better if you create a struct that passes a pointer to fifo and the ID instead of "hiding" the ID inside the address. Regards, Matthias _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2018-12-12 23:07 UTC|newest] Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-05-25 16:06 [PATCH v1 1/4] soc: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2018-05-25 16:06 ` Liming Sun 2018-05-25 16:06 ` [PATCH v1 2/4] arm64: Add Mellanox BlueField SoC config option Liming Sun 2018-05-25 16:06 ` Liming Sun 2018-05-25 16:06 ` [PATCH v1 3/4] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2018-05-25 16:06 ` Liming Sun 2018-05-25 16:06 ` [PATCH v1 4/4] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2018-05-25 16:06 ` Liming Sun 2018-05-25 17:14 ` [PATCH v1 1/4] soc: Add TmFifo driver for Mellanox BlueField Soc Robin Murphy 2018-05-25 17:14 ` Robin Murphy 2018-05-25 20:18 ` Liming Sun 2018-05-25 20:18 ` Liming Sun 2018-05-25 20:17 ` [PATCH v2 " Liming Sun 2018-05-25 20:17 ` Liming Sun 2018-05-25 20:17 ` [PATCH v2 2/4] arm64: Add Mellanox BlueField SoC config option Liming Sun 2018-05-25 20:17 ` Liming Sun 2018-05-25 20:17 ` [PATCH v2 3/4] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2018-05-25 20:17 ` Liming Sun 2018-05-31 3:43 ` Rob Herring 2018-05-31 3:43 ` Rob Herring 2018-06-01 14:31 ` Liming Sun 2018-06-01 14:31 ` Liming Sun 2018-05-25 20:17 ` [PATCH v2 4/4] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2018-05-25 20:17 ` Liming Sun 2018-06-01 14:31 ` [PATCH v3 1/4] soc: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2018-06-01 14:31 ` Liming Sun 2018-06-01 14:31 ` [PATCH v3 2/4] arm64: Add Mellanox BlueField SoC config option Liming Sun 2018-06-01 14:31 ` Liming Sun 2018-06-01 14:31 ` [PATCH v3 3/4] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2018-06-01 14:31 ` Liming Sun 2018-06-11 18:19 ` Rob Herring 2018-06-11 18:19 ` Rob Herring 2018-06-01 14:31 ` [PATCH v3 4/4] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2018-06-01 14:31 ` Liming Sun 2018-10-24 17:55 ` [PATCH v4 1/4] soc: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2018-10-24 17:55 ` Liming Sun 2018-10-25 15:57 ` Arnd Bergmann 2018-10-25 15:57 ` Arnd Bergmann 2018-10-26 18:24 ` Liming Sun 2018-10-26 18:24 ` Liming Sun 2018-10-26 18:35 ` Arnd Bergmann 2018-10-26 18:35 ` Arnd Bergmann 2018-10-29 14:17 ` Liming Sun 2018-10-29 14:17 ` Liming Sun 2018-10-29 14:52 ` Arnd Bergmann 2018-10-29 14:52 ` Arnd Bergmann 2018-12-04 22:12 ` Liming Sun 2018-12-04 22:12 ` Liming Sun 2018-10-24 17:55 ` [PATCH v4 2/4] arm64: Add Mellanox BlueField SoC config option Liming Sun 2018-10-24 17:55 ` Liming Sun 2018-10-25 15:38 ` Arnd Bergmann 2018-10-25 15:38 ` Arnd Bergmann 2018-10-26 19:18 ` Liming Sun 2018-10-26 19:18 ` Liming Sun 2018-10-26 19:32 ` Arnd Bergmann 2018-10-26 19:32 ` Arnd Bergmann 2018-10-29 14:58 ` Liming Sun 2018-10-29 14:58 ` Liming Sun 2018-10-29 15:26 ` Arnd Bergmann 2018-10-29 15:26 ` Arnd Bergmann 2018-10-29 16:09 ` Liming Sun 2018-10-29 16:09 ` Liming Sun 2018-10-24 17:55 ` [PATCH v4 3/4] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2018-10-24 17:55 ` Liming Sun 2018-10-25 15:32 ` Arnd Bergmann 2018-10-25 15:32 ` Arnd Bergmann 2018-10-26 19:36 ` Liming Sun 2018-10-26 19:36 ` Liming Sun 2018-10-26 20:33 ` Arnd Bergmann 2018-10-26 20:33 ` Arnd Bergmann 2018-10-29 16:48 ` Liming Sun 2018-10-29 16:48 ` Liming Sun 2019-01-24 15:07 ` Liming Sun 2019-01-24 15:07 ` Liming Sun 2018-10-24 17:55 ` [PATCH v4 4/4] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2018-10-24 17:55 ` Liming Sun 2018-10-31 18:09 ` [PATCH v5 1/5] soc: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2018-10-31 18:09 ` Liming Sun 2018-10-31 18:09 ` [PATCH v5 2/5] arm64: Add Mellanox BlueField SoC config option Liming Sun 2018-10-31 18:09 ` Liming Sun 2018-10-31 18:09 ` [PATCH v5 3/5] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2018-10-31 18:09 ` Liming Sun 2018-10-31 18:09 ` [PATCH v5 4/5] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2018-10-31 18:09 ` Liming Sun 2018-10-31 18:09 ` [PATCH v5 5/5] soc: mellanox: Add host side drivers to support Mellanox BlueField SoCs Liming Sun 2018-11-01 16:23 ` [PATCH v6 1/9] soc: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2018-11-01 16:23 ` Liming Sun 2018-12-12 23:07 ` Matthias Brugger [this message] 2018-12-12 23:07 ` Matthias Brugger 2019-01-03 19:20 ` Liming Sun 2019-01-03 19:20 ` Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 2/9] arm64: Add Mellanox BlueField SoC config option Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 3/9] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 4/9] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 5/9] soc: mellanox: host: Add the common host side Rshim driver Liming Sun 2018-11-01 16:25 ` Liming Sun 2019-01-18 16:02 ` Arnd Bergmann 2019-01-18 16:02 ` Arnd Bergmann 2019-01-18 16:02 ` Arnd Bergmann 2019-01-21 19:22 ` Liming Sun 2019-01-21 19:22 ` Liming Sun 2019-01-21 19:22 ` Liming Sun 2019-01-22 12:20 ` Vincent Whitchurch 2019-01-22 12:20 ` Vincent Whitchurch 2019-01-22 12:20 ` Vincent Whitchurch 2019-01-22 13:27 ` Liming Sun 2019-01-22 13:36 ` Liming Sun 2019-01-22 13:36 ` Liming Sun 2019-01-22 13:36 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 6/9] soc: mellanox: host: Add networking support over Rshim Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 7/9] soc: mellanox: host: Add the Rshim USB backend driver Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 8/9] soc: mellanox: host: Add the Rshim PCIe " Liming Sun 2018-11-01 16:25 ` Liming Sun 2018-11-01 16:25 ` [PATCH v6 9/9] soc: mellanox: host: Add the Rshim PCIe live-fish " Liming Sun 2018-11-01 16:25 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 1/9] soc: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-03-15 13:18 ` Matthias Brugger 2019-03-15 13:18 ` Matthias Brugger 2019-01-03 19:17 ` [PATCH v7 2/9] arm64: Add Mellanox BlueField SoC config option Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 3/9] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 4/9] MAINTAINERS: Add entry for Mellanox Bluefield Soc Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 5/9] soc: mellanox: host: Add the common host side Rshim driver Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 6/9] soc: mellanox: host: Add networking support over Rshim Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 7/9] soc: mellanox: host: Add the Rshim USB backend driver Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 8/9] soc: mellanox: host: Add the Rshim PCIe " Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-03 19:17 ` [PATCH v7 9/9] soc: mellanox: host: Add the Rshim PCIe live-fish " Liming Sun 2019-01-03 19:17 ` Liming Sun 2019-01-21 19:17 ` [PATCH v7 0/9] Mellanox BlueField ARM SoC Rshim driver Liming Sun 2019-01-21 19:17 ` Liming Sun 2019-02-18 13:24 ` Arnd Bergmann 2019-02-18 13:24 ` Arnd Bergmann 2019-01-28 17:28 ` [PATCH v8 0/2] TmFifo platform driver for Mellanox BlueField SoC Liming Sun 2019-01-28 17:28 ` [PATCH v8 1/2] platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2019-01-29 22:06 ` Andy Shevchenko 2019-02-13 13:34 ` Liming Sun 2019-02-13 16:33 ` Liming Sun 2019-01-30 6:24 ` Vadim Pasternak 2019-01-30 6:24 ` Vadim Pasternak 2019-02-13 13:42 ` Liming Sun 2019-01-28 17:28 ` [PATCH v8 2/2] dt-bindings: soc: Add TmFifo binding for Mellanox BlueField SoC Liming Sun 2019-02-13 13:27 ` [PATCH v9] platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc Liming Sun 2019-02-13 18:11 ` Andy Shevchenko 2019-02-13 18:34 ` Liming Sun 2019-02-14 16:25 ` Liming Sun 2019-02-28 15:51 ` Liming Sun 2019-02-28 15:51 ` [PATCH v10] " Liming Sun 2019-03-05 15:34 ` Andy Shevchenko 2019-03-06 20:00 ` Liming Sun 2019-03-08 14:44 ` Liming Sun 2019-03-08 14:41 ` [PATCH v11] " Liming Sun 2019-03-26 21:13 ` Liming Sun 2019-03-28 19:56 ` [PATCH v12] " Liming Sun 2019-04-04 19:36 ` [PATCH v13] " Liming Sun 2019-04-05 15:44 ` Andy Shevchenko 2019-04-05 19:10 ` Liming Sun 2019-04-07 2:05 ` Liming Sun 2019-04-11 14:13 ` Andy Shevchenko 2019-04-12 16:15 ` Liming Sun 2019-04-07 2:03 ` [PATCH v14] " Liming Sun 2019-04-11 14:09 ` Andy Shevchenko 2019-04-12 14:23 ` Liming Sun 2019-04-12 17:30 ` [PATCH v15] " Liming Sun 2019-05-03 13:49 ` [PATCH v16] " Liming Sun 2019-05-06 9:13 ` Andy Shevchenko
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=23fff14b-0e44-651c-1dfd-8f8e07c7eaee@gmail.com \ --to=matthias.bgg@gmail.com \ --cc=arm@kernel.org \ --cc=arnd@arndb.de \ --cc=devicetree@vger.kernel.org \ --cc=dwoods@mellanox.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=lsun@mellanox.com \ --cc=mbrugger@suse.com \ --cc=olof@lixom.net \ --cc=robin.murphy@arm.com \ --cc=y@bu-lab53.mtbu.labs.mlnx \ /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: linkBe 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.