From: Marc Kleine-Budde <mkl@pengutronix.de>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, linux-can@vger.kernel.org,
kernel@pengutronix.de,
Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>,
Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH net-next 17/47] can: ems_pci: Initialize BAR registers
Date: Mon, 6 Feb 2023 14:15:50 +0100 [thread overview]
Message-ID: <20230206131620.2758724-18-mkl@pengutronix.de> (raw)
In-Reply-To: <20230206131620.2758724-1-mkl@pengutronix.de>
From: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>
Fix the base register defines and their usage for all three card versions
Signed-off-by: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>
Link: https://lore.kernel.org/all/20230120112616.6071-4-uttenthaler@ems-wuensche.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/sja1000/ems_pci.c | 37 +++++++++++++++++++++++--------
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
index 80fa5e4c5eac..5748c24dd137 100644
--- a/drivers/net/can/sja1000/ems_pci.c
+++ b/drivers/net/can/sja1000/ems_pci.c
@@ -87,12 +87,23 @@ struct ems_pci_card {
*/
#define EMS_PCI_CDR (CDR_CBP | CDR_CLKOUT_MASK)
-#define EMS_PCI_V1_BASE_BAR 1
-#define EMS_PCI_V1_CONF_SIZE 4096 /* size of PITA control area */
-#define EMS_PCI_V2_BASE_BAR 2
-#define EMS_PCI_V2_CONF_SIZE 128 /* size of PLX control area */
-#define EMS_PCI_CAN_BASE_OFFSET 0x400 /* offset where the controllers starts */
-#define EMS_PCI_CAN_CTRL_SIZE 0x200 /* memory size for each controller */
+#define EMS_PCI_V1_BASE_BAR 1
+#define EMS_PCI_V1_CONF_BAR 0
+#define EMS_PCI_V1_CONF_SIZE 4096 /* size of PITA control area */
+#define EMS_PCI_V1_CAN_BASE_OFFSET 0x400 /* offset where the controllers start */
+#define EMS_PCI_V1_CAN_CTRL_SIZE 0x200 /* memory size for each controller */
+
+#define EMS_PCI_V2_BASE_BAR 2
+#define EMS_PCI_V2_CONF_BAR 0
+#define EMS_PCI_V2_CONF_SIZE 128 /* size of PLX control area */
+#define EMS_PCI_V2_CAN_BASE_OFFSET 0x400 /* offset where the controllers start */
+#define EMS_PCI_V2_CAN_CTRL_SIZE 0x200 /* memory size for each controller */
+
+#define EMS_PCI_V3_BASE_BAR 0
+#define EMS_PCI_V3_CONF_BAR 5
+#define EMS_PCI_V3_CONF_SIZE 128 /* size of ASIX control area */
+#define EMS_PCI_V3_CAN_BASE_OFFSET 0x00 /* offset where the controllers starts */
+#define EMS_PCI_V3_CAN_CTRL_SIZE 0x100 /* memory size for each controller */
#define EMS_PCI_BASE_SIZE 4096 /* size of controller area */
@@ -225,7 +236,7 @@ static int ems_pci_add_card(struct pci_dev *pdev,
struct sja1000_priv *priv;
struct net_device *dev;
struct ems_pci_card *card;
- int max_chan, conf_size, base_bar;
+ int max_chan, conf_size, base_bar, conf_bar;
int err, i;
/* Enabling PCI device */
@@ -247,20 +258,28 @@ static int ems_pci_add_card(struct pci_dev *pdev,
card->channels = 0;
- if (pdev->vendor == PCI_VENDOR_ID_PLX) {
+ if (pdev->vendor == PCI_VENDOR_ID_ASIX) {
+ card->version = 3; /* CPC-PCI v3 */
+ max_chan = EMS_PCI_V3_MAX_CHAN;
+ base_bar = EMS_PCI_V3_BASE_BAR;
+ conf_bar = EMS_PCI_V3_CONF_BAR;
+ conf_size = EMS_PCI_V3_CONF_SIZE;
+ } else if (pdev->vendor == PCI_VENDOR_ID_PLX) {
card->version = 2; /* CPC-PCI v2 */
max_chan = EMS_PCI_V2_MAX_CHAN;
base_bar = EMS_PCI_V2_BASE_BAR;
+ conf_bar = EMS_PCI_V2_CONF_BAR;
conf_size = EMS_PCI_V2_CONF_SIZE;
} else {
card->version = 1; /* CPC-PCI v1 */
max_chan = EMS_PCI_V1_MAX_CHAN;
base_bar = EMS_PCI_V1_BASE_BAR;
+ conf_bar = EMS_PCI_V1_CONF_BAR;
conf_size = EMS_PCI_V1_CONF_SIZE;
}
/* Remap configuration space and controller memory area */
- card->conf_addr = pci_iomap(pdev, 0, conf_size);
+ card->conf_addr = pci_iomap(pdev, conf_bar, conf_size);
if (!card->conf_addr) {
err = -ENOMEM;
goto failure_cleanup;
--
2.39.1
next prev parent reply other threads:[~2023-02-06 13:17 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 13:15 [PATCH net-next 0/47] pull-request: can-next 2023-02-06 Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 01/47] can: gw: give feedback on missing CGW_FLAGS_CAN_IIF_TX_OK flag Marc Kleine-Budde
2023-02-07 15:30 ` patchwork-bot+netdevbpf
2023-02-06 13:15 ` [PATCH net-next 02/47] can: isotp: check CAN address family in isotp_bind() Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 03/47] can: mcp251xfd: regmap: optimizing transfer size for CRC transfers size 1 Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 04/47] dt-bindings: can: renesas,rcar-canfd: R-Car V3U is R-Car Gen4 Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 05/47] dt-bindings: can: renesas,rcar-canfd: Document R-Car V4H support Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 06/47] dt-bindings: can: renesas,rcar-canfd: Add transceiver support Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 07/47] can: rcar_canfd: Fix R-Car V3U CAN mode selection Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 08/47] can: rcar_canfd: Fix R-Car V3U GAFLCFG field accesses Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 09/47] can: rcar_canfd: Abstract out DCFG address differences Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 10/47] can: rcar_canfd: Add support for R-Car Gen4 Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 11/47] can: rcar_canfd: Fix R-Car Gen4 DCFG.DSJW field width Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 12/47] can: rcar_canfd: Fix R-Car Gen4 CFCC.CFTML " Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 13/47] can: rcar_canfd: Sort included header files Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 14/47] can: rcar_canfd: Add helper variable dev Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 15/47] can: ems_pci: Fix code style, copyright and email address Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 16/47] can: ems_pci: Add Asix AX99100 definitions Marc Kleine-Budde
2023-02-06 13:15 ` Marc Kleine-Budde [this message]
2023-02-06 13:15 ` [PATCH net-next 18/47] can: ems_pci: Add read/write register and post irq functions Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 19/47] can: ems_pci: Initialize CAN controller base addresses Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 20/47] can: ems_pci: Add IRQ enable Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 21/47] can: ems_pci: Deassert hardware reset Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 22/47] can: ems_pci: Add myself as module author Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 23/47] can: peak_usb: rename device_id to CAN channel ID Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 24/47] can: peak_usb: add callback to read CAN channel ID of PEAK CAN-FD devices Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 25/47] can: peak_usb: allow flashing of the CAN channel ID Marc Kleine-Budde
2023-02-06 13:15 ` [PATCH net-next 26/47] can: peak_usb: replace unregister_netdev() with unregister_candev() Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 27/47] can: peak_usb: add ethtool interface to user-configurable CAN channel identifier Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 28/47] can: peak_usb: export PCAN CAN channel ID as sysfs device attribute Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 29/47] can: peak_usb: align CAN channel ID format in log with sysfs attribute Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 30/47] can: peak_usb: Reorder include directives alphabetically Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 31/47] can: bittiming(): replace open coded variants of can_bit_time() Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 32/47] can: bittiming: can_fixup_bittiming(): use CAN_SYNC_SEG instead of 1 Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 33/47] can: bittiming: can_fixup_bittiming(): set effective tq Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 34/47] can: bittiming: can_get_bittiming(): use direct return and remove unneeded else Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 35/47] can: dev: register_candev(): ensure that bittiming const are valid Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 36/47] can: dev: register_candev(): bail out if both fixed bit rates and bit timing constants are provided Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 37/47] can: netlink: can_validate(): validate sample point for CAN and CAN-FD Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 38/47] can: netlink: can_changelink(): convert from netdev_err() to NL_SET_ERR_MSG_FMT() Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 39/47] can: bittiming: can_changelink() pass extack down callstack Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 40/47] can: bittiming: factor out can_sjw_set_default() and can_sjw_check() Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 41/47] can: bittiming: can_fixup_bittiming(): report error via netlink and harmonize error value Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 42/47] can: bittiming: can_sjw_check(): " Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 43/47] can: bittiming: can_sjw_check(): check that SJW is not longer than either Phase Buffer Segment Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 44/47] can: bittiming: can_sjw_set_default(): use Phase Seg2 / 2 as default for SJW Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 45/47] can: bittiming: can_calc_bittiming(): clean up SJW handling Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 46/47] can: bittiming: can_calc_bittiming(): convert from netdev_err() to NL_SET_ERR_MSG_FMT() Marc Kleine-Budde
2023-02-06 13:16 ` [PATCH net-next 47/47] can: bittiming: can_validate_bitrate(): report error via netlink Marc Kleine-Budde
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=20230206131620.2758724-18-mkl@pengutronix.de \
--to=mkl@pengutronix.de \
--cc=davem@davemloft.net \
--cc=kernel@pengutronix.de \
--cc=kuba@kernel.org \
--cc=linux-can@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=uttenthaler@ems-wuensche.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).