[PATCH 2/3] (Resend part #2) Add RapidIO memory mapping API and simple Bitmap allocation.
Add RapidIO memory mapping API and simple Bitmap allocation with fixed size. Some bugs are fixed. Signed-off-by: Zhang Wei <[EMAIL PROTECTED]> --- drivers/rapidio/Kconfig | 18 +- drivers/rapidio/Makefile|1 + drivers/rapidio/rio-access.c| 10 +- drivers/rapidio/rio-scan.c | 53 +++-- drivers/rapidio/rio-sysfs.c |3 +- drivers/rapidio/rio.c | 486 ++- drivers/rapidio/rio.h |9 +- drivers/rapidio/sallocator/Kconfig |9 + drivers/rapidio/sallocator/Makefile | 12 + drivers/rapidio/sallocator/bitmap.c | 383 +++ 10 files changed, 944 insertions(+), 40 deletions(-) create mode 100644 drivers/rapidio/sallocator/Kconfig create mode 100644 drivers/rapidio/sallocator/Makefile create mode 100644 drivers/rapidio/sallocator/bitmap.c diff --git a/drivers/rapidio/Kconfig b/drivers/rapidio/Kconfig index 4142115..f669108 100644 --- a/drivers/rapidio/Kconfig +++ b/drivers/rapidio/Kconfig @@ -1,14 +1,6 @@ # # RapidIO configuration # -config RAPIDIO_8_BIT_TRANSPORT - bool "8-bit transport addressing" - depends on RAPIDIO - ---help--- - By default, the kernel assumes a 16-bit addressed RapidIO - network. By selecting this option, the kernel will support - an 8-bit addressed network. - config RAPIDIO_DISC_TIMEOUT int "Discovery timeout duration (seconds)" depends on RAPIDIO @@ -16,3 +8,13 @@ config RAPIDIO_DISC_TIMEOUT ---help--- Amount of time a discovery node waits for a host to complete enumeration before giving up. + +config RAPIDIO_PROC_FS + bool "I/O and Memory resource debug" + depends on RAPIDIO && PROC_FS + default y + ---help--- + Enable this option, it will create a /proc/riores node for + monitoring the RapidIO I/O and Memory resource. + +source "drivers/rapidio/sallocator/Kconfig" diff --git a/drivers/rapidio/Makefile b/drivers/rapidio/Makefile index 7c0e181..e5b2f11 100644 --- a/drivers/rapidio/Makefile +++ b/drivers/rapidio/Makefile @@ -4,3 +4,4 @@ obj-y += rio.o rio-access.o rio-driver.o rio-scan.o rio-sysfs.o obj-$(CONFIG_RAPIDIO) += switches/ +obj-$(CONFIG_RAPIDIO) += sallocator/ diff --git a/drivers/rapidio/rio-access.c b/drivers/rapidio/rio-access.c index 8b56bbd..a3824ba 100644 --- a/drivers/rapidio/rio-access.c +++ b/drivers/rapidio/rio-access.c @@ -48,7 +48,7 @@ int __rio_local_read_config_##size \ u32 data = 0; \ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(_config_lock, flags); \ - res = mport->ops->lcread(mport->id, offset, len, );\ + res = mport->ops->lcread(mport, mport->id, offset, len, ); \ *value = (type)data;\ spin_unlock_irqrestore(_config_lock, flags);\ return res; \ @@ -71,7 +71,7 @@ int __rio_local_write_config_##size \ unsigned long flags;\ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(_config_lock, flags); \ - res = mport->ops->lcwrite(mport->id, offset, len, value); \ + res = mport->ops->lcwrite(mport, mport->id, offset, len, value);\ spin_unlock_irqrestore(_config_lock, flags);\ return res; \ } @@ -108,7 +108,7 @@ int rio_mport_read_config_##size \ u32 data = 0; \ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(_config_lock, flags); \ - res = mport->ops->cread(mport->id, destid, hopcount, offset, len, ); \ + res = mport->ops->cread(mport, mport->id, destid, hopcount, offset, len, ); \ *value = (type)data;\ spin_unlock_irqrestore(_config_lock, flags);\ return res; \ @@ -131,7 +131,7 @@ int rio_mport_write_config_##size \ unsigned long flags;\ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(_config_lock, flags); \ - res = mport->ops->cwrite(mport->id, destid, hopcount, offset, len, value); \ + res = mport->ops->cwrite(mport, mport->id, destid, hopcount, offset, len, value); \ spin_unlock_irqrestore(_config_lock, flags);\ return res; \ } @@ -166,7 +166,7 @@ int
[PATCH 2/3] (Resend part #2) Add RapidIO memory mapping API and simple Bitmap allocation.
Add RapidIO memory mapping API and simple Bitmap allocation with fixed size. Some bugs are fixed. Signed-off-by: Zhang Wei [EMAIL PROTECTED] --- drivers/rapidio/Kconfig | 18 +- drivers/rapidio/Makefile|1 + drivers/rapidio/rio-access.c| 10 +- drivers/rapidio/rio-scan.c | 53 +++-- drivers/rapidio/rio-sysfs.c |3 +- drivers/rapidio/rio.c | 486 ++- drivers/rapidio/rio.h |9 +- drivers/rapidio/sallocator/Kconfig |9 + drivers/rapidio/sallocator/Makefile | 12 + drivers/rapidio/sallocator/bitmap.c | 383 +++ 10 files changed, 944 insertions(+), 40 deletions(-) create mode 100644 drivers/rapidio/sallocator/Kconfig create mode 100644 drivers/rapidio/sallocator/Makefile create mode 100644 drivers/rapidio/sallocator/bitmap.c diff --git a/drivers/rapidio/Kconfig b/drivers/rapidio/Kconfig index 4142115..f669108 100644 --- a/drivers/rapidio/Kconfig +++ b/drivers/rapidio/Kconfig @@ -1,14 +1,6 @@ # # RapidIO configuration # -config RAPIDIO_8_BIT_TRANSPORT - bool 8-bit transport addressing - depends on RAPIDIO - ---help--- - By default, the kernel assumes a 16-bit addressed RapidIO - network. By selecting this option, the kernel will support - an 8-bit addressed network. - config RAPIDIO_DISC_TIMEOUT int Discovery timeout duration (seconds) depends on RAPIDIO @@ -16,3 +8,13 @@ config RAPIDIO_DISC_TIMEOUT ---help--- Amount of time a discovery node waits for a host to complete enumeration before giving up. + +config RAPIDIO_PROC_FS + bool I/O and Memory resource debug + depends on RAPIDIO PROC_FS + default y + ---help--- + Enable this option, it will create a /proc/riores node for + monitoring the RapidIO I/O and Memory resource. + +source drivers/rapidio/sallocator/Kconfig diff --git a/drivers/rapidio/Makefile b/drivers/rapidio/Makefile index 7c0e181..e5b2f11 100644 --- a/drivers/rapidio/Makefile +++ b/drivers/rapidio/Makefile @@ -4,3 +4,4 @@ obj-y += rio.o rio-access.o rio-driver.o rio-scan.o rio-sysfs.o obj-$(CONFIG_RAPIDIO) += switches/ +obj-$(CONFIG_RAPIDIO) += sallocator/ diff --git a/drivers/rapidio/rio-access.c b/drivers/rapidio/rio-access.c index 8b56bbd..a3824ba 100644 --- a/drivers/rapidio/rio-access.c +++ b/drivers/rapidio/rio-access.c @@ -48,7 +48,7 @@ int __rio_local_read_config_##size \ u32 data = 0; \ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(rio_config_lock, flags); \ - res = mport-ops-lcread(mport-id, offset, len, data);\ + res = mport-ops-lcread(mport, mport-id, offset, len, data); \ *value = (type)data;\ spin_unlock_irqrestore(rio_config_lock, flags);\ return res; \ @@ -71,7 +71,7 @@ int __rio_local_write_config_##size \ unsigned long flags;\ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(rio_config_lock, flags); \ - res = mport-ops-lcwrite(mport-id, offset, len, value); \ + res = mport-ops-lcwrite(mport, mport-id, offset, len, value);\ spin_unlock_irqrestore(rio_config_lock, flags);\ return res; \ } @@ -108,7 +108,7 @@ int rio_mport_read_config_##size \ u32 data = 0; \ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(rio_config_lock, flags); \ - res = mport-ops-cread(mport-id, destid, hopcount, offset, len, data); \ + res = mport-ops-cread(mport, mport-id, destid, hopcount, offset, len, data); \ *value = (type)data;\ spin_unlock_irqrestore(rio_config_lock, flags);\ return res; \ @@ -131,7 +131,7 @@ int rio_mport_write_config_##size \ unsigned long flags;\ if (RIO_##size##_BAD) return RIO_BAD_SIZE; \ spin_lock_irqsave(rio_config_lock, flags); \ - res = mport-ops-cwrite(mport-id, destid, hopcount, offset, len, value); \ + res = mport-ops-cwrite(mport, mport-id, destid, hopcount, offset, len, value); \ spin_unlock_irqrestore(rio_config_lock, flags);\ return res; \ } @@ -166,7 +166,7 @@ int