- mca-add-integrated-device-bus-matching.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     mca: add integrated device bus matching
has been removed from the -mm tree.  Its filename was
     mca-add-integrated-device-bus-matching.patch

This patch was dropped because it was merged into mainline or a subsystem tree

------------------------------------------------------
Subject: mca: add integrated device bus matching
From: James Bottomley <James.Bottomley@xxxxxxxxxxxx>

The MCA bus has a few "integrated" functions, which are effectively virtual
slots on the bus.  The problem is that these special functions don't have
dedicated pos IDs, so we have to manufacture ids for them outside the pos
space ...  and these ids can't be matched by the standard matching function,
so add a special registration that requests a list of pos ids or a particular
integrated function.

Signed-off-by: James Bottomley <James.Bottomley@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 drivers/mca/mca-bus.c    |    9 ++++++++-
 drivers/mca/mca-driver.c |   13 +++++++++++++
 include/linux/mca.h      |    2 ++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff -puN drivers/mca/mca-bus.c~mca-add-integrated-device-bus-matching drivers/mca/mca-bus.c
--- a/drivers/mca/mca-bus.c~mca-add-integrated-device-bus-matching
+++ a/drivers/mca/mca-bus.c
@@ -59,7 +59,14 @@ static int mca_bus_match (struct device 
 			return 1;
 		}
 	}
-
+	/* If the integrated id is present, treat it as though it were an
+	 * additional id in the id_table (it can't be because by definition,
+	 * integrated id's overflow a short */
+	if (mca_drv->integrated_id && mca_dev->pos_id ==
+	    mca_drv->integrated_id) {
+		mca_dev->index = i;
+		return 1;
+	}
 	return 0;
 }
 
diff -puN drivers/mca/mca-driver.c~mca-add-integrated-device-bus-matching drivers/mca/mca-driver.c
--- a/drivers/mca/mca-driver.c~mca-add-integrated-device-bus-matching
+++ a/drivers/mca/mca-driver.c
@@ -36,12 +36,25 @@ int mca_register_driver(struct mca_drive
 		mca_drv->driver.bus = &mca_bus_type;
 		if ((r = driver_register(&mca_drv->driver)) < 0)
 			return r;
+		mca_drv->integrated_id = 0;
 	}
 
 	return 0;
 }
 EXPORT_SYMBOL(mca_register_driver);
 
+int mca_register_driver_integrated(struct mca_driver *mca_driver,
+				   int integrated_id)
+{
+	int r = mca_register_driver(mca_driver);
+
+	if (!r)
+		mca_driver->integrated_id = integrated_id;
+
+	return r;
+}
+EXPORT_SYMBOL(mca_register_driver_integrated);
+
 void mca_unregister_driver(struct mca_driver *mca_drv)
 {
 	if (MCA_bus)
diff -puN include/linux/mca.h~mca-add-integrated-device-bus-matching include/linux/mca.h
--- a/include/linux/mca.h~mca-add-integrated-device-bus-matching
+++ a/include/linux/mca.h
@@ -94,6 +94,7 @@ struct mca_bus {
 struct mca_driver {
 	const short		*id_table;
 	void			*driver_data;
+	int			integrated_id;
 	struct device_driver	driver;
 };
 #define to_mca_driver(mdriver) container_of(mdriver, struct mca_driver, driver)
@@ -125,6 +126,7 @@ extern enum MCA_AdapterStatus mca_device
 extern struct bus_type mca_bus_type;
 
 extern int mca_register_driver(struct mca_driver *drv);
+extern int mca_register_driver_integrated(struct mca_driver *, int);
 extern void mca_unregister_driver(struct mca_driver *drv);
 
 /* WARNING: only called by the boot time device setup */
_

Patches currently in -mm which might be from James.Bottomley@xxxxxxxxxxxx are

origin.patch
fix--confusion-in-fusion-driver.patch
upper-32-bits.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux