All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eddie James <eajames@linux.ibm.com>
To: linux-fsi@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org, jk@ozlabs.org, joel@jms.id.au,
	alistair@popple.id.au, andrew@aj.id.au, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
	devicetree@vger.kernel.org
Subject: [PATCH 09/14] fsi: core: Fix legacy minor numbering
Date: Mon, 12 Jun 2023 14:56:52 -0500	[thread overview]
Message-ID: <20230612195657.245125-10-eajames@linux.ibm.com> (raw)
In-Reply-To: <20230612195657.245125-1-eajames@linux.ibm.com>

From: Eddie James <eajames@us.ibm.com>

The legacy minor numbering shifts the chip id too much,
resulting in ids that overlap with regular ids. Since there
are only 2 bits for 4 types, only shift the chip id by 2
to fit the legacy ids in their reserved space.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
---
 drivers/fsi/fsi-core.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index 47e47c16d5ed..ea280f149b3f 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -934,8 +934,12 @@ static int __fsi_get_new_minor(struct fsi_slave *slave, enum fsi_dev_type type,
 
 	/* Check if we qualify for legacy numbering */
 	if (cid >= 0 && cid < 16 && type < 4) {
-		/* Try reserving the legacy number */
-		id = (cid << 4) | type;
+		/*
+		 * Try reserving the legacy number, which has 0 - 0x3f reserved
+		 * in the ida range. cid goes up to 0xf and type contains two
+		 * bits, so construct the id with the below two bit shift.
+		 */
+		id = (cid << 2) | type;
 		id = ida_simple_get(&fsi_minor_ida, id, id + 1, GFP_KERNEL);
 		if (id >= 0) {
 			*out_index = fsi_adjust_index(cid);
@@ -970,7 +974,8 @@ int fsi_get_new_minor(struct fsi_device *fdev, enum fsi_dev_type type,
 		int aid = of_alias_get_id(fdev->dev.of_node, fsi_dev_type_names[type]);
 
 		if (aid >= 0) {
-			int id = (aid << 4) | type;
+			/* Use the same scheme as the legacy numbers. */
+			int id = (aid << 2) | type;
 
 			id = ida_simple_get(&fsi_minor_ida, id, id + 1, GFP_KERNEL);
 			if (id >= 0) {
-- 
2.31.1


  parent reply	other threads:[~2023-06-12 19:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-12 19:56 [PATCH 00/14] fsi: Miscellaneous fixes and I2C Responder driver Eddie James
2023-06-12 19:56 ` [PATCH 01/14] fsi: Move fsi_slave structure definition to header Eddie James
2023-06-12 19:56 ` [PATCH 02/14] fsi: Add aliased device numbering Eddie James
2023-06-12 19:56 ` [PATCH 03/14] fsi: Use of_match_table for bus matching if specified Eddie James
2023-08-17 15:46   ` Rob Herring
2023-06-12 19:56 ` [PATCH 04/14] fsi: sbefifo: Don't check status during probe Eddie James
2023-06-12 19:56 ` [PATCH 05/14] fsi: sbefifo: Add configurable in-command timeout Eddie James
2023-06-12 19:56 ` [PATCH 06/14] fsi: sbefifo: Remove limits on user-specified read timeout Eddie James
2023-06-12 19:56 ` [PATCH 07/14] fsi: aspeed: Reset master errors after CFAM reset Eddie James
2023-06-12 19:56 ` [PATCH 08/14] fsi: core: Add trace events for scan and unregister Eddie James
2023-06-12 19:56 ` Eddie James [this message]
2023-06-12 19:56 ` [PATCH 10/14] fsi: core: Switch to ida_alloc/free Eddie James
2023-06-12 19:56 ` [PATCH 11/14] fsi: Improve master indexing Eddie James
2023-08-09  7:08   ` Joel Stanley
2023-08-09 11:55     ` Joel Stanley
2023-08-09 16:08       ` Eddie James
2023-08-09 16:21     ` Eddie James
2023-06-12 19:56 ` [PATCH 12/14] dt-bindings: fsi: Document the IBM I2C Responder virtual FSI master Eddie James
2023-06-12 19:56 ` [PATCH 13/14] fsi: Add " Eddie James
2023-06-12 19:56 ` [PATCH 14/14] fsi: Add I2C Responder SCOM driver Eddie James
2023-08-17 15:56   ` Rob Herring

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=20230612195657.245125-10-eajames@linux.ibm.com \
    --to=eajames@linux.ibm.com \
    --cc=alistair@popple.id.au \
    --cc=andrew@aj.id.au \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jk@ozlabs.org \
    --cc=joel@jms.id.au \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-fsi@lists.ozlabs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    /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.