* [PATCH 01/12] staging: unisys: visorbus: Move kernel-doc comment to proper location
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 02/12] staging: unisys: visorbus: Fix spelling mistake David Kershner
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Moves kernel-doc comment in front of the function it describes.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorchannel.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c
index e91febc..ea4cb09 100644
--- a/drivers/staging/unisys/visorbus/visorchannel.c
+++ b/drivers/staging/unisys/visorbus/visorchannel.c
@@ -286,16 +286,6 @@ visorchannel_signalremove(struct visorchannel *channel, u32 queue, void *msg)
}
EXPORT_SYMBOL_GPL(visorchannel_signalremove);
-/**
- * visorchannel_signalempty() - checks if the designated channel/queue
- * contains any messages
- * @channel: the channel to query
- * @queue: the queue in the channel to query
- *
- * Return: boolean indicating whether any messages in the designated
- * channel/queue are present
- */
-
static bool
queue_empty(struct visorchannel *channel, u32 queue)
{
@@ -307,6 +297,15 @@ queue_empty(struct visorchannel *channel, u32 queue)
return (sig_hdr.head == sig_hdr.tail);
}
+/**
+ * visorchannel_signalempty() - checks if the designated channel/queue
+ * contains any messages
+ * @channel: the channel to query
+ * @queue: the queue in the channel to query
+ *
+ * Return: boolean indicating whether any messages in the designated
+ * channel/queue are present
+ */
bool
visorchannel_signalempty(struct visorchannel *channel, u32 queue)
{
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 02/12] staging: unisys: visorbus: Fix spelling mistake
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
2017-02-21 17:53 ` [PATCH 01/12] staging: unisys: visorbus: Move kernel-doc comment to proper location David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 03/12] staging: unisys: visorhba: Make miscellaneous comment corrections David Kershner
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Fixes a minor spelling mistake in a function comment.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorbus_main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c b/drivers/staging/unisys/visorbus/visorbus_main.c
index 55f29ae..b36452f 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -143,9 +143,9 @@ struct bus_type visorbus_type = {
};
/**
- * visorbus_releae_busdevice() - called when device_unregister() is called for
- * the bus device instance, after all other tasks
- * involved with destroying the dev are complete
+ * visorbus_release_busdevice() - called when device_unregister() is called for
+ * the bus device instance, after all other tasks
+ * involved with destroying the dev are complete
* @xdev: struct device for the bus being released
*/
static void
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 03/12] staging: unisys: visorhba: Make miscellaneous comment corrections
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
2017-02-21 17:53 ` [PATCH 01/12] staging: unisys: visorbus: Move kernel-doc comment to proper location David Kershner
2017-02-21 17:53 ` [PATCH 02/12] staging: unisys: visorbus: Fix spelling mistake David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 04/12] staging: unisys: visorbus: visorchannel.c: Remove kernel-doc comment David Kershner
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Fixes miscellaneous comment issues in visorhba_main.c.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorhba/visorhba_main.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c b/drivers/staging/unisys/visorhba/visorhba_main.c
index 0ce92c8..d1d4007 100644
--- a/drivers/staging/unisys/visorhba/visorhba_main.c
+++ b/drivers/staging/unisys/visorhba/visorhba_main.c
@@ -106,6 +106,7 @@ struct visorhba_devices_open {
if ((iter->channel == match->channel) && \
(iter->id == match->id) && \
(iter->lun == match->lun))
+
/**
* visor_thread_start - starts a thread for the device
* @threadfn: Function the thread starts
@@ -184,7 +185,7 @@ static int add_scsipending_entry(struct visorhba_devdata *devdata,
}
/**
- * del_scsipending_enty - removes an entry from the pending array
+ * del_scsipending_ent - removes an entry from the pending array
* @devdata: Device holding the pending array
* @del: Entry to remove
*
@@ -212,7 +213,7 @@ static void *del_scsipending_ent(struct visorhba_devdata *devdata,
/**
* get_scsipending_cmdrsp - return the cmdrsp stored in a pending entry
- * #ddata: Device holding the pending array
+ * @ddata: Device holding the pending array
* @ent: Entry that stores the cmdrsp
*
* Each scsipending entry has a cmdrsp in it. The cmdrsp is only valid
@@ -1201,7 +1202,7 @@ static int visorhba_init(void)
}
/**
- * visorhba_cleanup - driver exit routine
+ * visorhba_exit - driver exit routine
*
* Unregister driver from the bus and free up memory.
*/
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 04/12] staging: unisys: visorbus: visorchannel.c: Remove kernel-doc comment
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (2 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 03/12] staging: unisys: visorhba: Make miscellaneous comment corrections David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 05/12] staging: unisys: visorbus: visorbus_main.c: Remove kernel-doc comments David Kershner
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Removes kernel-doc formatting for comment that precedes a static function.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorchannel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c
index ea4cb09..1e3dc58 100644
--- a/drivers/staging/unisys/visorbus/visorchannel.c
+++ b/drivers/staging/unisys/visorbus/visorchannel.c
@@ -367,7 +367,7 @@ signalinsert_inner(struct visorchannel *channel, u32 queue, void *msg)
return 0;
}
-/**
+/*
* visorchannel_create_guts() - creates the struct visorchannel abstraction
* for a data area in memory, but does NOT modify
* this data area
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 05/12] staging: unisys: visorbus: visorbus_main.c: Remove kernel-doc comments
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (3 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 04/12] staging: unisys: visorbus: visorchannel.c: Remove kernel-doc comment David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 06/12] staging: unisys: visorbus: visorchipset.c: " David Kershner
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Removes kernel-doc formatting for comments that precede static functions.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorbus_main.c | 36 +++++++++---------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c b/drivers/staging/unisys/visorbus/visorbus_main.c
index b36452f..1d54190 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -92,7 +92,7 @@ visorbus_uevent(struct device *xdev, struct kobj_uevent_env *env)
return 0;
}
-/**
+/*
* visorbus_match() - called automatically upon adding a visor_device
* (device_add), or adding a visor_driver
* (visorbus_register_visor_driver)
@@ -142,7 +142,7 @@ struct bus_type visorbus_type = {
.dev_groups = visorbus_dev_groups,
};
-/**
+/*
* visorbus_release_busdevice() - called when device_unregister() is called for
* the bus device instance, after all other tasks
* involved with destroying the dev are complete
@@ -158,7 +158,7 @@ visorbus_release_busdevice(struct device *xdev)
kfree(dev);
}
-/**
+/*
* visorbus_release_device() - called when device_unregister() is called for
* each child device instance
* @xdev: struct device for the visor device being released
@@ -464,7 +464,7 @@ dev_stop_periodic_work(struct visor_device *dev)
put_device(&dev->device);
}
-/**
+/*
* visordriver_remove_device() - handle visor device going away
* @xdev: struct device for the visor device being removed
*
@@ -583,7 +583,7 @@ visorbus_disable_channel_interrupts(struct visor_device *dev)
}
EXPORT_SYMBOL_GPL(visorbus_disable_channel_interrupts);
-/**
+/*
* create_visor_device() - create visor device as a result of receiving the
* controlvm device_create message for a new device
* @dev: a freshly-zeroed struct visor_device, containing only filled-in values
@@ -694,7 +694,7 @@ get_vbus_header_info(struct visorchannel *chan,
return 0;
}
-/**
+/*
* write_vbus_chp_info() - write the contents of <info> to the struct
* spar_vbus_channel_protocol.chp_info
* @chan: indentifies the s-Par channel that will be updated
@@ -720,7 +720,7 @@ write_vbus_chp_info(struct visorchannel *chan,
visorchannel_write(chan, off, info, sizeof(*info));
}
-/**
+/*
* write_vbus_bus_info() - write the contents of <info> to the struct
* spar_vbus_channel_protocol.bus_info
* @chan: indentifies the s-Par channel that will be updated
@@ -746,7 +746,7 @@ write_vbus_bus_info(struct visorchannel *chan,
visorchannel_write(chan, off, info, sizeof(*info));
}
-/**
+/*
* write_vbus_dev_info() - write the contents of <info> to the struct
* spar_vbus_channel_protocol.dev_info[<devix>]
* @chan: indentifies the s-Par channel that will be updated
@@ -775,7 +775,7 @@ write_vbus_dev_info(struct visorchannel *chan,
visorchannel_write(chan, off, info, sizeof(*info));
}
-/**
+/*
* fix_vbus_dev_info() - for a child device just created on a client bus, fill
* in information about the driver that is controlling
* this device into the the appropriate slot within the
@@ -832,7 +832,7 @@ fix_vbus_dev_info(struct visor_device *visordev)
&clientbus_driverinfo);
}
-/**
+/*
* visordriver_probe_device() - handle new visor device coming online
* @xdev: struct device for the visor device being probed
*
@@ -956,7 +956,7 @@ int visorbus_register_visor_driver(struct visor_driver *drv)
}
EXPORT_SYMBOL_GPL(visorbus_register_visor_driver);
-/**
+/*
* create_bus_instance() - create a device instance for the visor bus itself
* @dev: struct visor_device indicating the bus instance
*
@@ -1027,7 +1027,7 @@ create_bus_instance(struct visor_device *dev)
return err;
}
-/**
+/*
* remove_bus_instance() - remove a device instance for the visor bus itself
* @dev: struct visor_device indentifying the bus to remove
*/
@@ -1051,7 +1051,7 @@ remove_bus_instance(struct visor_device *dev)
device_unregister(&dev->device);
}
-/**
+/*
* create_bus_type() - create and register the one-and-only one instance of
* the visor bus type (visorbus_type)
* Return: 0 for success, otherwise negative errno value returned by
@@ -1064,7 +1064,7 @@ create_bus_type(void)
return busreg_rc;
}
-/**
+/*
* remove_bus_type() - remove the one-and-only one instance of the visor bus
* type (visorbus_type)
*/
@@ -1074,7 +1074,7 @@ remove_bus_type(void)
bus_unregister(&visorbus_type);
}
-/**
+/*
* remove_all_visor_devices() - remove all child visor bus device instances
*/
static void
@@ -1146,7 +1146,7 @@ chipset_device_destroy(struct visor_device *dev_info)
device_destroy_response(dev_info, 0);
}
-/**
+/*
* pause_state_change_complete() - the callback function to be called by a
* visorbus function driver when a
* pending "pause device" operation has
@@ -1166,7 +1166,7 @@ pause_state_change_complete(struct visor_device *dev, int status)
device_pause_response(dev, status);
}
-/**
+/*
* resume_state_change_complete() - the callback function to be called by a
* visorbus function driver when a
* pending "resume device" operation has
@@ -1191,7 +1191,7 @@ resume_state_change_complete(struct visor_device *dev, int status)
device_resume_response(dev, status);
}
-/**
+/*
* initiate_chipset_device_pause_resume() - start a pause or resume operation
* for a visor device
* @dev: struct visor_device identifying the device being paused or resumed
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 06/12] staging: unisys: visorbus: visorchipset.c: Remove kernel-doc comments
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (4 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 05/12] staging: unisys: visorbus: visorbus_main.c: Remove kernel-doc comments David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 07/12] staging: unisys: visorbus: vbuschannel.h: Remove kernel-doc comment David Kershner
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Removes kernel-doc formatting for comments that precede static functions.
Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorchipset.c | 24 +++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index 97778d7..74c41fc 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -1004,7 +1004,7 @@ my_device_destroy(struct controlvm_message *inmsg)
#define PARAHOTPLUG_TIMEOUT_MS 2000
-/**
+/*
* parahotplug_next_id() - generate unique int to match an outstanding
* CONTROLVM message with a udev script /sys
* response
@@ -1019,7 +1019,7 @@ parahotplug_next_id(void)
return atomic_inc_return(&id);
}
-/**
+/*
* parahotplug_next_expiration() - returns the time (in jiffies) when a
* CONTROLVM message on the list should expire
* -- PARAHOTPLUG_TIMEOUT_MS in the future
@@ -1032,7 +1032,7 @@ parahotplug_next_expiration(void)
return jiffies + msecs_to_jiffies(PARAHOTPLUG_TIMEOUT_MS);
}
-/**
+/*
* parahotplug_request_create() - create a parahotplug_request, which is
* basically a wrapper for a CONTROLVM_MESSAGE
* that we can stick on a list
@@ -1056,7 +1056,7 @@ parahotplug_request_create(struct controlvm_message *msg)
return req;
}
-/**
+/*
* parahotplug_request_destroy() - free a parahotplug_request
* @req: the request to deallocate
*/
@@ -1069,7 +1069,7 @@ parahotplug_request_destroy(struct parahotplug_request *req)
static LIST_HEAD(parahotplug_request_list);
static DEFINE_SPINLOCK(parahotplug_request_list_lock); /* lock for above */
-/**
+/*
* parahotplug_request_complete() - mark request as complete
* @id: the id of the request
* @active: indicates whether the request is assigned to active partition
@@ -1113,7 +1113,7 @@ parahotplug_request_complete(int id, u16 active)
return -EINVAL;
}
-/**
+/*
* devicedisabled_store() - disables the hotplug device
* @dev: sysfs interface variable not utilized in this function
* @attr: sysfs interface variable not utilized in this function
@@ -1143,7 +1143,7 @@ static ssize_t devicedisabled_store(struct device *dev,
}
static DEVICE_ATTR_WO(devicedisabled);
-/**
+/*
* deviceenabled_store() - enables the hotplug device
* @dev: sysfs interface variable not utilized in this function
* @attr: sysfs interface variable not utilized in this function
@@ -1213,7 +1213,7 @@ static struct platform_device visorchipset_platform_device = {
.dev.release = visorchipset_dev_release,
};
-/**
+/*
* parahotplug_request_kickoff() - initiate parahotplug request
* @req: the request to initiate
*
@@ -1245,7 +1245,7 @@ parahotplug_request_kickoff(struct parahotplug_request *req)
envp);
}
-/**
+/*
* parahotplug_process_message() - enables or disables a PCI device by kicking
* off a udev script
* @inmsg: the message indicating whether to enable or disable
@@ -1719,7 +1719,7 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
return NULL;
}
-/**
+/*
* handle_command() - process a controlvm message
* @inmsg: the message to process
* @channel_addr: address of the controlvm channel
@@ -1833,7 +1833,7 @@ handle_command(struct controlvm_message inmsg, u64 channel_addr)
return true;
}
-/**
+/*
* read_controlvm_event() - retreives the next message from the
* CONTROLVM_QUEUE_EVENT queue in the controlvm
* channel
@@ -1854,7 +1854,7 @@ read_controlvm_event(struct controlvm_message *msg)
return false;
}
-/**
+/*
* parahotplug_process_list() - remove any request from the list that's been on
* there too long and respond with an error
*/
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 07/12] staging: unisys: visorbus: vbuschannel.h: Remove kernel-doc comment
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (5 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 06/12] staging: unisys: visorbus: visorchipset.c: " David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 08/12] staging: unisys: visornic: visornic_main.c: Remove kernel-doc comments David Kershner
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Removes kernel-doc formatting for comment that precedes a static function.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/vbuschannel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/unisys/visorbus/vbuschannel.h b/drivers/staging/unisys/visorbus/vbuschannel.h
index b0df261..5dbf6c5 100644
--- a/drivers/staging/unisys/visorbus/vbuschannel.h
+++ b/drivers/staging/unisys/visorbus/vbuschannel.h
@@ -66,7 +66,7 @@ struct ultra_vbus_deviceinfo {
u8 reserved[128]; /* pad size to 256 bytes */
};
-/**
+/*
* vbuschannel_print_devinfo() - format a struct ultra_vbus_deviceinfo
* and write it to a seq_file
* @devinfo: the struct ultra_vbus_deviceinfo to format
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 08/12] staging: unisys: visornic: visornic_main.c: Remove kernel-doc comments
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (6 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 07/12] staging: unisys: visorbus: vbuschannel.h: Remove kernel-doc comment David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 09/12] staging: unisys: visorhba: visorhba_main.c: " David Kershner
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Removes kernel-doc formatting for comments that precede static functions.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visornic/visornic_main.c | 70 +++++++++---------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c
index d8f5eca..7583582 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -141,7 +141,7 @@ struct visornic_devdata {
struct uiscmdrsp cmdrsp[SIZEOF_CMDRSP];
};
-/**
+/*
* visor_copy_fragsinfo_from_skb(
* @skb_in: skbuff that we are pulling the frags from
* @firstfraglen: length of first fragment in skb
@@ -250,7 +250,7 @@ static const struct file_operations debugfs_enable_ints_fops = {
.write = enable_ints_write,
};
-/**
+/*
* visornic_serverdown_complete - IOPART went down, pause device
* @work: Work queue it was scheduled on
*
@@ -285,7 +285,7 @@ visornic_serverdown_complete(struct visornic_devdata *devdata)
devdata->server_down_complete_func = NULL;
}
-/**
+/*
* visornic_serverdown - Command has notified us that IOPART is down
* @devdata: device that is being managed by IOPART
*
@@ -332,7 +332,7 @@ visornic_serverdown(struct visornic_devdata *devdata,
return err;
}
-/**
+/*
* alloc_rcv_buf - alloc rcv buffer to be given to the IO Partition.
* @netdev: network adapter the rcv bufs are attached too.
*
@@ -363,7 +363,7 @@ alloc_rcv_buf(struct net_device *netdev)
return skb;
}
-/**
+/*
* post_skb - post a skb to the IO Partition.
* @cmdrsp: cmdrsp packet to be send to the IO Partition
* @devdata: visornic_devdata to post the skb too
@@ -397,7 +397,7 @@ post_skb(struct uiscmdrsp *cmdrsp,
}
}
-/**
+/*
* send_enbdis - send NET_RCV_ENBDIS to IO Partition
* @netdev: netdevice we are enable/disable, used as context
* return value
@@ -421,7 +421,7 @@ send_enbdis(struct net_device *netdev, int state,
devdata->chstat.sent_enbdis++;
}
-/**
+/*
* visornic_disable_with_timeout - Disable network adapter
* @netdev: netdevice to disable
* @timeout: timeout to wait for disable
@@ -507,7 +507,7 @@ visornic_disable_with_timeout(struct net_device *netdev, const int timeout)
return 0;
}
-/**
+/*
* init_rcv_bufs -- initialize receive bufs and send them to the IO Part
* @netdev: struct netdevice
* @devdata: visornic_devdata
@@ -554,7 +554,7 @@ init_rcv_bufs(struct net_device *netdev, struct visornic_devdata *devdata)
return 0;
}
-/**
+/*
* visornic_enable_with_timeout - send enable to IO Part
* @netdev: struct net_device
* @timeout: Time to wait for the ACK from the enable
@@ -626,7 +626,7 @@ visornic_enable_with_timeout(struct net_device *netdev, const int timeout)
return 0;
}
-/**
+/*
* visornic_timeout_reset - handle xmit timeout resets
* @work work item that scheduled the work
*
@@ -669,7 +669,7 @@ visornic_timeout_reset(struct work_struct *work)
rtnl_unlock();
}
-/**
+/*
* visornic_open - Enable the visornic device and mark the queue started
* @netdev: netdevice to start
*
@@ -684,7 +684,7 @@ visornic_open(struct net_device *netdev)
return 0;
}
-/**
+/*
* visornic_close - Disables the visornic device and stops the queues
* @netdev: netdevice to start
*
@@ -699,7 +699,7 @@ visornic_close(struct net_device *netdev)
return 0;
}
-/**
+/*
* devdata_xmits_outstanding - compute outstanding xmits
* @devdata: visornic_devdata for device
*
@@ -714,7 +714,7 @@ static unsigned long devdata_xmits_outstanding(struct visornic_devdata *devdata)
+ devdata->chstat.sent_xmit + 1);
}
-/**
+/*
* vnic_hit_high_watermark
* @devdata: indicates visornic device we are checking
* @high_watermark: max num of unacked xmits we will tolerate,
@@ -729,7 +729,7 @@ static inline bool vnic_hit_high_watermark(struct visornic_devdata *devdata,
return (devdata_xmits_outstanding(devdata) >= high_watermark);
}
-/**
+/*
* vnic_hit_low_watermark
* @devdata: indicates visornic device we are checking
* @low_watermark: we will wait until the num of unacked xmits
@@ -745,7 +745,7 @@ static inline bool vnic_hit_low_watermark(struct visornic_devdata *devdata,
return (devdata_xmits_outstanding(devdata) <= low_watermark);
}
-/**
+/*
* visornic_xmit - send a packet to the IO Partition
* @skb: Packet to be sent
* @netdev: net device the packet is being sent from
@@ -916,7 +916,7 @@ visornic_xmit(struct sk_buff *skb, struct net_device *netdev)
return NETDEV_TX_OK;
}
-/**
+/*
* visornic_get_stats - returns net_stats of the visornic device
* @netdev: netdevice
*
@@ -930,7 +930,7 @@ visornic_get_stats(struct net_device *netdev)
return &devdata->net_stats;
}
-/**
+/*
* visornic_change_mtu - changes mtu of device.
* @netdev: netdevice
* @new_mtu: value of new mtu
@@ -947,7 +947,7 @@ visornic_change_mtu(struct net_device *netdev, int new_mtu)
return -EINVAL;
}
-/**
+/*
* visornic_set_multi - changes mtu of device.
* @netdev: netdevice
*
@@ -984,7 +984,7 @@ visornic_set_multi(struct net_device *netdev)
devdata->old_flags = netdev->flags;
}
-/**
+/*
* visornic_xmit_timeout - request to timeout the xmit
* @netdev
*
@@ -1019,7 +1019,7 @@ visornic_xmit_timeout(struct net_device *netdev)
spin_unlock_irqrestore(&devdata->priv_lock, flags);
}
-/**
+/*
* repost_return - repost rcv bufs that have come back
* @cmdrsp: io channel command struct to post
* @devdata: visornic devdata for the device
@@ -1091,7 +1091,7 @@ repost_return(struct uiscmdrsp *cmdrsp, struct visornic_devdata *devdata,
return status;
}
-/**
+/*
* visornic_rx - Handle receive packets coming back from IO Part
* @cmdrsp: Receive packet returned from IO Part
*
@@ -1293,7 +1293,7 @@ visornic_rx(struct uiscmdrsp *cmdrsp)
return 1;
}
-/**
+/*
* devdata_initialize - Initialize devdata structure
* @devdata: visornic_devdata structure to initialize
* #dev: visorbus_deviced it belongs to
@@ -1310,7 +1310,7 @@ devdata_initialize(struct visornic_devdata *devdata, struct visor_device *dev)
return devdata;
}
-/**
+/*
* devdata_release - Frees up references in devdata
* @devdata: struct to clean up
*
@@ -1487,7 +1487,7 @@ static const struct file_operations debugfs_info_fops = {
.read = info_debugfs_read,
};
-/**
+/*
* send_rcv_posts_if_needed
* @devdata: visornic device
*
@@ -1530,7 +1530,7 @@ send_rcv_posts_if_needed(struct visornic_devdata *devdata)
devdata->num_rcv_bufs_could_not_alloc -= rcv_bufs_allocated;
}
-/**
+/*
* drain_resp_queue - drains and ignores all messages from the resp queue
* @cmdrsp: io channel command response message
* @devdata: visornic device to drain
@@ -1544,7 +1544,7 @@ drain_resp_queue(struct uiscmdrsp *cmdrsp, struct visornic_devdata *devdata)
;
}
-/**
+/*
* service_resp_queue - drains the response queue
* @cmdrsp: io channel command response message
* @devdata: visornic device to drain
@@ -1661,7 +1661,7 @@ static int visornic_poll(struct napi_struct *napi, int budget)
return rx_count;
}
-/**
+/*
* poll_for_irq - Checks the status of the response queue.
* @v: void pointer to the visronic devdata
*
@@ -1684,7 +1684,7 @@ poll_for_irq(unsigned long v)
mod_timer(&devdata->irq_poll_timer, msecs_to_jiffies(2));
}
-/**
+/*
* visornic_probe - probe function for visornic devices
* @dev: The visor device discovered
*
@@ -1881,7 +1881,7 @@ static int visornic_probe(struct visor_device *dev)
return err;
}
-/**
+/*
* host_side_disappeared - IO part is gone.
* @devdata: device object
*
@@ -1897,7 +1897,7 @@ static void host_side_disappeared(struct visornic_devdata *devdata)
spin_unlock_irqrestore(&devdata->priv_lock, flags);
}
-/**
+/*
* visornic_remove - Called when visornic dev goes away
* @dev: visornic device that is being removed
*
@@ -1944,7 +1944,7 @@ static void visornic_remove(struct visor_device *dev)
free_netdev(netdev);
}
-/**
+/*
* visornic_pause - Called when IO Part disappears
* @dev: visornic device that is being serviced
* @complete_func: call when finished.
@@ -1966,7 +1966,7 @@ static int visornic_pause(struct visor_device *dev,
return 0;
}
-/**
+/*
* visornic_resume - Called when IO part has recovered
* @dev: visornic device that is being serviced
* @compelte_func: call when finished
@@ -2036,7 +2036,7 @@ static struct visor_driver visornic_driver = {
.channel_interrupt = NULL,
};
-/**
+/*
* visornic_init - Init function
*
* Init function for the visornic driver. Do initial driver setup
@@ -2073,7 +2073,7 @@ static int visornic_init(void)
return err;
}
-/**
+/*
* visornic_cleanup - driver exit routine
*
* Unregister driver from the bus and free up memory.
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 09/12] staging: unisys: visorhba: visorhba_main.c: Remove kernel-doc comments
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (7 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 08/12] staging: unisys: visornic: visornic_main.c: Remove kernel-doc comments David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 10/12] staging: unisys: visorbus: added struct visorchipset_device David Kershner
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: David Binder
From: David Binder <david.binder@unisys.com>
Removes kernel-doc formatting for comments that precede static functions.
Signed-off-by: David Binder <david.binder@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorhba/visorhba_main.c | 64 +++++++++---------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c b/drivers/staging/unisys/visorhba/visorhba_main.c
index d1d4007..4018d5a 100644
--- a/drivers/staging/unisys/visorhba/visorhba_main.c
+++ b/drivers/staging/unisys/visorhba/visorhba_main.c
@@ -107,7 +107,7 @@ struct visorhba_devices_open {
(iter->id == match->id) && \
(iter->lun == match->lun))
-/**
+/*
* visor_thread_start - starts a thread for the device
* @threadfn: Function the thread starts
* @thrcontext: Context to pass to the thread, i.e. devdata
@@ -131,7 +131,7 @@ static struct task_struct *visor_thread_start
return task;
}
-/**
+/*
* visor_thread_stop - stops the thread if it is running
*/
static void visor_thread_stop(struct task_struct *task)
@@ -141,7 +141,7 @@ static void visor_thread_stop(struct task_struct *task)
kthread_stop(task);
}
-/**
+/*
* add_scsipending_entry - save off io command that is pending in
* Service Partition
* @devdata: Pointer to devdata
@@ -184,7 +184,7 @@ static int add_scsipending_entry(struct visorhba_devdata *devdata,
return insert_location;
}
-/**
+/*
* del_scsipending_ent - removes an entry from the pending array
* @devdata: Device holding the pending array
* @del: Entry to remove
@@ -211,7 +211,7 @@ static void *del_scsipending_ent(struct visorhba_devdata *devdata,
return sent;
}
-/**
+/*
* get_scsipending_cmdrsp - return the cmdrsp stored in a pending entry
* @ddata: Device holding the pending array
* @ent: Entry that stores the cmdrsp
@@ -229,7 +229,7 @@ static struct uiscmdrsp *get_scsipending_cmdrsp(struct visorhba_devdata *ddata,
return NULL;
}
-/**
+/*
* simple_idr_get - associate a provided pointer with an int value
* 1 <= value <= INT_MAX, and return this int value;
* the pointer value can be obtained later by passing
@@ -254,7 +254,7 @@ static unsigned int simple_idr_get(struct idr *idrtable, void *p,
return (unsigned int)(id); /* idr_alloc() guarantees > 0 */
}
-/**
+/*
* setup_scsitaskmgmt_handles - stash the necessary handles so that the
* completion processing logic for a taskmgmt
* cmd will be able to find who to wake up
@@ -272,7 +272,7 @@ static void setup_scsitaskmgmt_handles(struct idr *idrtable, spinlock_t *lock,
simple_idr_get(idrtable, result, lock);
}
-/**
+/*
* cleanup_scsitaskmgmt_handles - forget handles created by
* setup_scsitaskmgmt_handles()
*/
@@ -285,7 +285,7 @@ static void cleanup_scsitaskmgmt_handles(struct idr *idrtable,
idr_remove(idrtable, cmdrsp->scsitaskmgmt.notifyresult_handle);
}
-/**
+/*
* forward_taskmgmt_command - send taskmegmt command to the Service
* Partition
* @tasktype: Type of taskmgmt command
@@ -364,7 +364,7 @@ static int forward_taskmgmt_command(enum task_mgmt_types tasktype,
return FAILED;
}
-/**
+/*
* visorhba_abort_handler - Send TASK_MGMT_ABORT_TASK
* @scsicmd: The scsicmd that needs aborted
*
@@ -389,7 +389,7 @@ static int visorhba_abort_handler(struct scsi_cmnd *scsicmd)
return forward_taskmgmt_command(TASK_MGMT_ABORT_TASK, scsicmd);
}
-/**
+/*
* visorhba_device_reset_handler - Send TASK_MGMT_LUN_RESET
* @scsicmd: The scsicmd that needs aborted
*
@@ -413,7 +413,7 @@ static int visorhba_device_reset_handler(struct scsi_cmnd *scsicmd)
return forward_taskmgmt_command(TASK_MGMT_LUN_RESET, scsicmd);
}
-/**
+/*
* visorhba_bus_reset_handler - Send TASK_MGMT_TARGET_RESET for each
* target on the bus
* @scsicmd: The scsicmd that needs aborted
@@ -437,7 +437,7 @@ static int visorhba_bus_reset_handler(struct scsi_cmnd *scsicmd)
return forward_taskmgmt_command(TASK_MGMT_BUS_RESET, scsicmd);
}
-/**
+/*
* visorhba_host_reset_handler - Not supported
* @scsicmd: The scsicmd that needs aborted
*
@@ -451,7 +451,7 @@ visorhba_host_reset_handler(struct scsi_cmnd *scsicmd)
return SUCCESS;
}
-/**
+/*
* visorhba_get_info
* @shp: Scsi host that is requesting information
*
@@ -463,7 +463,7 @@ static const char *visorhba_get_info(struct Scsi_Host *shp)
return "visorhba";
}
-/**
+/*
* visorhba_queue_command_lck -- queues command to the Service Partition
* @scsicmd: Command to be queued
* @vsiorhba_cmnd_done: Done command to call when scsicmd is returned
@@ -554,7 +554,7 @@ static DEF_SCSI_QCMD(visorhba_queue_command)
#define visorhba_queue_command visorhba_queue_command_lck
#endif
-/**
+/*
* visorhba_slave_alloc - called when new disk is discovered
* @scsidev: New disk
*
@@ -591,7 +591,7 @@ static int visorhba_slave_alloc(struct scsi_device *scsidev)
return 0;
}
-/**
+/*
* visorhba_slave_destroy - disk is going away
* @scsidev: scsi device going away
*
@@ -634,7 +634,7 @@ static struct scsi_host_template visorhba_driver_template = {
.use_clustering = ENABLE_CLUSTERING,
};
-/**
+/*
* info_debugfs_show - debugfs interface to dump visorhba states
*
* This presents a file in the debugfs tree named:
@@ -678,7 +678,7 @@ static const struct file_operations info_debugfs_fops = {
.release = single_release,
};
-/**
+/*
* complete_taskmgmt_command - complete task management
* @cmdrsp: Response from the IOVM
*
@@ -707,7 +707,7 @@ static inline void complete_taskmgmt_command
wake_up_all(wq);
}
-/**
+/*
* visorhba_serverdown_complete - Called when we are done cleaning up
* from serverdown
* @work: work structure for this serverdown request
@@ -757,7 +757,7 @@ static void visorhba_serverdown_complete(struct visorhba_devdata *devdata)
devdata->serverchangingstate = false;
}
-/**
+/*
* visorhba_serverdown - Got notified that the IOVM is down
* @devdata: visorhba that is being serviced by downed IOVM.
*
@@ -776,7 +776,7 @@ static int visorhba_serverdown(struct visorhba_devdata *devdata)
return 0;
}
-/**
+/*
* do_scsi_linuxstat - scsi command returned linuxstat
* @cmdrsp: response from IOVM
* @scsicmd: Command issued.
@@ -827,7 +827,7 @@ static int set_no_disk_inquiry_result(unsigned char *buf,
return 0;
}
-/**
+/*
* do_scsi_nolinuxstat - scsi command didn't have linuxstat
* @cmdrsp: response from IOVM
* @scsicmd: Command issued.
@@ -888,7 +888,7 @@ do_scsi_nolinuxstat(struct uiscmdrsp *cmdrsp, struct scsi_cmnd *scsicmd)
}
}
-/**
+/*
* complete_scsi_command - complete a scsi command
* @uiscmdrsp: Response from Service Partition
* @scsicmd: The scsi command
@@ -910,7 +910,7 @@ complete_scsi_command(struct uiscmdrsp *cmdrsp, struct scsi_cmnd *scsicmd)
scsicmd->scsi_done(scsicmd);
}
-/**
+/*
* drain_queue - pull responses out of iochannel
* @cmdrsp: Response from the IOSP
* @devdata: device that owns this iochannel
@@ -952,7 +952,7 @@ drain_queue(struct uiscmdrsp *cmdrsp, struct visorhba_devdata *devdata)
}
}
-/**
+/*
* process_incoming_rsps - Process responses from IOSP
* @v: void pointer to visorhba_devdata
*
@@ -984,7 +984,7 @@ static int process_incoming_rsps(void *v)
return 0;
}
-/**
+/*
* visorhba_pause - function to handle visorbus pause messages
* @dev: device that is pausing.
* @complete_func: function to call when finished
@@ -1004,7 +1004,7 @@ static int visorhba_pause(struct visor_device *dev,
return 0;
}
-/**
+/*
* visorhba_resume - function called when the IO Service Partition is back
* @dev: device that is pausing.
* @complete_func: function to call when finished
@@ -1034,7 +1034,7 @@ static int visorhba_resume(struct visor_device *dev,
return 0;
}
-/**
+/*
* visorhba_probe - device has been discovered, do acquire
* @dev: visor_device that was discovered
*
@@ -1133,7 +1133,7 @@ static int visorhba_probe(struct visor_device *dev)
return err;
}
-/**
+/*
* visorhba_remove - remove a visorhba device
* @dev: Device to remove
*
@@ -1175,7 +1175,7 @@ static struct visor_driver visorhba_driver = {
.channel_interrupt = NULL,
};
-/**
+/*
* visorhba_init - driver init routine
*
* Initialize the visorhba driver and register it with visorbus
@@ -1201,7 +1201,7 @@ static int visorhba_init(void)
return rc;
}
-/**
+/*
* visorhba_exit - driver exit routine
*
* Unregister driver from the bus and free up memory.
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 10/12] staging: unisys: visorbus: added struct visorchipset_device
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (8 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 09/12] staging: unisys: visorhba: visorhba_main.c: " David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 11/12] staging: unisys: visorbus: remove character device interface David Kershner
2017-02-21 17:53 ` [PATCH 12/12] staging: unisys: visorbus: remove visorchipset_platform_device David Kershner
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: Sameer Wadgaonkar
From: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Added the structure visorchipset_device and moved the globals to
the struct. The visorchipset_init() function saves acpi_device
within this structure.
Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorchipset.c | 197 ++++++++++--------
1 file changed, 112 insertions(+), 85 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index 74c41fc..b3c3cdd 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -72,9 +72,6 @@ visorchipset_release(struct inode *inode, struct file *file)
* message, we switch back to fast polling mode.
*/
#define MIN_IDLE_SECONDS 10
-static unsigned long poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
-/* when we got our last controlvm message */
-static unsigned long most_recent_message_jiffies;
struct parser_context {
unsigned long allocbytes;
@@ -85,22 +82,28 @@ struct parser_context {
char data[0];
};
-static struct delayed_work periodic_controlvm_work;
-
-static struct cdev file_cdev;
-static struct visorchannel **file_controlvm_channel;
-
-static struct visorchannel *controlvm_channel;
-static unsigned long controlvm_payload_bytes_buffered;
+struct visorchipset_device {
+ struct acpi_device *acpi_device;
+ unsigned long poll_jiffies;
+ /* when we got our last controlvm message */
+ unsigned long most_recent_message_jiffies;
+ struct delayed_work periodic_controlvm_work;
+ struct cdev file_cdev;
+ struct visorchannel **file_controlvm_channel;
+ struct visorchannel *controlvm_channel;
+ unsigned long controlvm_payload_bytes_buffered;
+ /*
+ * The following variables are used to handle the scenario where we are
+ * unable to offload the payload from a controlvm message due to memory
+ * requirements. In this scenario, we simply stash the controlvm
+ * message, then attempt to process it again the next time
+ * controlvm_periodic_work() runs.
+ */
+ struct controlvm_message controlvm_pending_msg;
+ bool controlvm_pending_msg_valid;
+};
-/*
- * The following globals are used to handle the scenario where we are unable to
- * offload the payload from a controlvm message due to memory requirements. In
- * this scenario, we simply stash the controlvm message, then attempt to
- * process it again the next time controlvm_periodic_work() runs.
- */
-static struct controlvm_message controlvm_pending_msg;
-static bool controlvm_pending_msg_valid;
+static struct visorchipset_device *chipset_dev;
struct parahotplug_request {
struct list_head list;
@@ -119,7 +122,7 @@ static ssize_t toolaction_show(struct device *dev,
{
u8 tool_action = 0;
- visorchannel_read(controlvm_channel,
+ visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
tool_action), &tool_action, sizeof(u8));
return sprintf(buf, "%u\n", tool_action);
@@ -136,7 +139,7 @@ static ssize_t toolaction_store(struct device *dev,
return -EINVAL;
ret = visorchannel_write
- (controlvm_channel,
+ (chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
tool_action),
&tool_action, sizeof(u8));
@@ -153,7 +156,7 @@ static ssize_t boottotool_show(struct device *dev,
{
struct efi_spar_indication efi_spar_indication;
- visorchannel_read(controlvm_channel,
+ visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
efi_spar_ind), &efi_spar_indication,
sizeof(struct efi_spar_indication));
@@ -172,7 +175,7 @@ static ssize_t boottotool_store(struct device *dev,
efi_spar_indication.boot_to_tool = val;
ret = visorchannel_write
- (controlvm_channel,
+ (chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
efi_spar_ind), &(efi_spar_indication),
sizeof(struct efi_spar_indication));
@@ -188,7 +191,7 @@ static ssize_t error_show(struct device *dev, struct device_attribute *attr,
{
u32 error = 0;
- visorchannel_read(controlvm_channel,
+ visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
installation_error),
&error, sizeof(u32));
@@ -205,7 +208,7 @@ static ssize_t error_store(struct device *dev, struct device_attribute *attr,
return -EINVAL;
ret = visorchannel_write
- (controlvm_channel,
+ (chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
installation_error),
&error, sizeof(u32));
@@ -221,7 +224,7 @@ static ssize_t textid_show(struct device *dev, struct device_attribute *attr,
u32 text_id = 0;
visorchannel_read
- (controlvm_channel,
+ (chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
installation_text_id),
&text_id, sizeof(u32));
@@ -238,7 +241,7 @@ static ssize_t textid_store(struct device *dev, struct device_attribute *attr,
return -EINVAL;
ret = visorchannel_write
- (controlvm_channel,
+ (chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
installation_text_id),
&text_id, sizeof(u32));
@@ -253,7 +256,7 @@ static ssize_t remaining_steps_show(struct device *dev,
{
u16 remaining_steps = 0;
- visorchannel_read(controlvm_channel,
+ visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
installation_remaining_steps),
&remaining_steps, sizeof(u16));
@@ -271,7 +274,7 @@ static ssize_t remaining_steps_store(struct device *dev,
return -EINVAL;
ret = visorchannel_write
- (controlvm_channel,
+ (chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
installation_remaining_steps),
&remaining_steps, sizeof(u16));
@@ -292,7 +295,7 @@ parser_id_get(struct parser_context *ctx)
static void parser_done(struct parser_context *ctx)
{
- controlvm_payload_bytes_buffered -= ctx->param_bytes;
+ chipset_dev->controlvm_payload_bytes_buffered -= ctx->param_bytes;
kfree(ctx);
}
@@ -405,7 +408,7 @@ controlvm_respond_chipset_init(struct controlvm_message_header *msg_hdr,
controlvm_init_response(&outmsg, msg_hdr, response);
outmsg.cmd.init_chipset.features = features;
- return visorchannel_signalinsert(controlvm_channel,
+ return visorchannel_signalinsert(chipset_dev->controlvm_channel,
CONTROLVM_QUEUE_REQUEST, &outmsg);
}
@@ -455,7 +458,7 @@ controlvm_respond(struct controlvm_message_header *msg_hdr, int response)
if (outmsg.hdr.flags.test_message == 1)
return -EINVAL;
- return visorchannel_signalinsert(controlvm_channel,
+ return visorchannel_signalinsert(chipset_dev->controlvm_channel,
CONTROLVM_QUEUE_REQUEST, &outmsg);
}
@@ -468,7 +471,7 @@ static int controlvm_respond_physdev_changestate(
controlvm_init_response(&outmsg, msg_hdr, response);
outmsg.cmd.device_change_state.state = state;
outmsg.cmd.device_change_state.flags.phys_device = 1;
- return visorchannel_signalinsert(controlvm_channel,
+ return visorchannel_signalinsert(chipset_dev->controlvm_channel,
CONTROLVM_QUEUE_REQUEST, &outmsg);
}
@@ -484,7 +487,7 @@ save_crash_message(struct controlvm_message *msg, enum crash_obj_type typ)
u16 local_crash_msg_count;
int err;
- err = visorchannel_read(controlvm_channel,
+ err = visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
saved_crash_message_count),
&local_crash_msg_count, sizeof(u16));
@@ -501,7 +504,7 @@ save_crash_message(struct controlvm_message *msg, enum crash_obj_type typ)
return -EIO;
}
- err = visorchannel_read(controlvm_channel,
+ err = visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
saved_crash_message_offset),
&local_crash_msg_offset, sizeof(u32));
@@ -514,7 +517,7 @@ save_crash_message(struct controlvm_message *msg, enum crash_obj_type typ)
switch (typ) {
case CRASH_DEV:
local_crash_msg_offset += sizeof(struct controlvm_message);
- err = visorchannel_write(controlvm_channel,
+ err = visorchannel_write(chipset_dev->controlvm_channel,
local_crash_msg_offset,
msg,
sizeof(struct controlvm_message));
@@ -525,7 +528,7 @@ save_crash_message(struct controlvm_message *msg, enum crash_obj_type typ)
}
break;
case CRASH_BUS:
- err = visorchannel_write(controlvm_channel,
+ err = visorchannel_write(chipset_dev->controlvm_channel,
local_crash_msg_offset,
msg,
sizeof(struct controlvm_message));
@@ -576,7 +579,7 @@ device_changestate_responder(enum controlvm_id cmd_id,
outmsg.cmd.device_change_state.dev_no = dev_no;
outmsg.cmd.device_change_state.state = response_state;
- return visorchannel_signalinsert(controlvm_channel,
+ return visorchannel_signalinsert(chipset_dev->controlvm_channel,
CONTROLVM_QUEUE_REQUEST, &outmsg);
}
@@ -1398,7 +1401,7 @@ setup_crash_devices_work_queue(struct work_struct *work)
chipset_init(&msg);
/* get saved message count */
- if (visorchannel_read(controlvm_channel,
+ if (visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
saved_crash_message_count),
&local_crash_msg_count, sizeof(u16)) < 0) {
@@ -1415,7 +1418,7 @@ setup_crash_devices_work_queue(struct work_struct *work)
}
/* get saved crash message offset */
- if (visorchannel_read(controlvm_channel,
+ if (visorchannel_read(chipset_dev->controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
saved_crash_message_offset),
&local_crash_msg_offset, sizeof(u32)) < 0) {
@@ -1425,7 +1428,7 @@ setup_crash_devices_work_queue(struct work_struct *work)
}
/* read create device message for storage bus offset */
- if (visorchannel_read(controlvm_channel,
+ if (visorchannel_read(chipset_dev->controlvm_channel,
local_crash_msg_offset,
&local_crash_bus_msg,
sizeof(struct controlvm_message)) < 0) {
@@ -1435,7 +1438,7 @@ setup_crash_devices_work_queue(struct work_struct *work)
}
/* read create device message for storage device */
- if (visorchannel_read(controlvm_channel,
+ if (visorchannel_read(chipset_dev->controlvm_channel,
local_crash_msg_offset +
sizeof(struct controlvm_message),
&local_crash_dev_msg,
@@ -1548,11 +1551,11 @@ visorchipset_mmap(struct file *file, struct vm_area_struct *vma)
switch (offset) {
case VISORCHIPSET_MMAP_CONTROLCHANOFFSET:
vma->vm_flags |= VM_IO;
- if (!*file_controlvm_channel)
+ if (!*chipset_dev->file_controlvm_channel)
return -ENXIO;
visorchannel_read
- (*file_controlvm_channel,
+ (*chipset_dev->file_controlvm_channel,
offsetof(struct spar_controlvm_channel_protocol,
gp_control_channel),
&addr, sizeof(addr));
@@ -1633,9 +1636,9 @@ visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
{
int rc = 0;
- file_controlvm_channel = controlvm_channel;
- cdev_init(&file_cdev, &visorchipset_fops);
- file_cdev.owner = THIS_MODULE;
+ chipset_dev->file_controlvm_channel = controlvm_channel;
+ cdev_init(&chipset_dev->file_cdev, &visorchipset_fops);
+ chipset_dev->file_cdev.owner = THIS_MODULE;
if (MAJOR(major_dev) == 0) {
rc = alloc_chrdev_region(&major_dev, 0, 1, "visorchipset");
/* dynamic major device number registration required */
@@ -1647,7 +1650,8 @@ visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
if (rc < 0)
return rc;
}
- rc = cdev_add(&file_cdev, MKDEV(MAJOR(major_dev), 0), 1);
+ rc = cdev_add(&chipset_dev->file_cdev,
+ MKDEV(MAJOR(major_dev), 0), 1);
if (rc < 0) {
unregister_chrdev_region(major_dev, 1);
return rc;
@@ -1658,9 +1662,9 @@ visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
static void
visorchipset_file_cleanup(dev_t major_dev)
{
- if (file_cdev.ops)
- cdev_del(&file_cdev);
- file_cdev.ops = NULL;
+ if (chipset_dev->file_cdev.ops)
+ cdev_del(&chipset_dev->file_cdev);
+ chipset_dev->file_cdev.ops = NULL;
unregister_chrdev_region(major_dev, 1);
}
@@ -1677,7 +1681,7 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
* '\0'-terminated
*/
allocbytes++;
- if ((controlvm_payload_bytes_buffered + bytes)
+ if ((chipset_dev->controlvm_payload_bytes_buffered + bytes)
> MAX_CONTROLVM_PAYLOAD_BYTES) {
*retry = true;
return NULL;
@@ -1710,7 +1714,7 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
}
ctx->byte_stream = true;
- controlvm_payload_bytes_buffered += ctx->param_bytes;
+ chipset_dev->controlvm_payload_bytes_buffered += ctx->param_bytes;
return ctx;
@@ -1769,10 +1773,10 @@ handle_command(struct controlvm_message inmsg, u64 channel_addr)
if (!local_addr) {
controlvm_init_response(&ackmsg, &inmsg.hdr,
CONTROLVM_RESP_SUCCESS);
- if (controlvm_channel)
- visorchannel_signalinsert(controlvm_channel,
- CONTROLVM_QUEUE_ACK,
- &ackmsg);
+ if (chipset_dev->controlvm_channel)
+ visorchannel_signalinsert(
+ chipset_dev->controlvm_channel,
+ CONTROLVM_QUEUE_ACK, &ackmsg);
}
switch (inmsg.hdr.id) {
case CONTROLVM_CHIPSET_INIT:
@@ -1844,7 +1848,7 @@ handle_command(struct controlvm_message inmsg, u64 channel_addr)
static bool
read_controlvm_event(struct controlvm_message *msg)
{
- if (!visorchannel_signalremove(controlvm_channel,
+ if (!visorchannel_signalremove(chipset_dev->controlvm_channel,
CONTROLVM_QUEUE_EVENT, msg)) {
/* got a message */
if (msg->hdr.flags.test_message == 1)
@@ -1892,19 +1896,19 @@ controlvm_periodic_work(struct work_struct *work)
bool got_command = false;
bool handle_command_failed = false;
- while (!visorchannel_signalremove(controlvm_channel,
+ while (!visorchannel_signalremove(chipset_dev->controlvm_channel,
CONTROLVM_QUEUE_RESPONSE,
&inmsg))
;
if (!got_command) {
- if (controlvm_pending_msg_valid) {
+ if (chipset_dev->controlvm_pending_msg_valid) {
/*
* we throttled processing of a prior
* msg, so try to process it again
* rather than reading a new one
*/
- inmsg = controlvm_pending_msg;
- controlvm_pending_msg_valid = false;
+ inmsg = chipset_dev->controlvm_pending_msg;
+ chipset_dev->controlvm_pending_msg_valid = false;
got_command = true;
} else {
got_command = read_controlvm_event(&inmsg);
@@ -1913,10 +1917,10 @@ controlvm_periodic_work(struct work_struct *work)
handle_command_failed = false;
while (got_command && (!handle_command_failed)) {
- most_recent_message_jiffies = jiffies;
+ chipset_dev->most_recent_message_jiffies = jiffies;
if (handle_command(inmsg,
visorchannel_get_physaddr
- (controlvm_channel)))
+ (chipset_dev->controlvm_channel)))
got_command = read_controlvm_event(&inmsg);
else {
/*
@@ -1927,29 +1931,34 @@ controlvm_periodic_work(struct work_struct *work)
* reprocess it on our next loop
*/
handle_command_failed = true;
- controlvm_pending_msg = inmsg;
- controlvm_pending_msg_valid = true;
+ chipset_dev->controlvm_pending_msg = inmsg;
+ chipset_dev->controlvm_pending_msg_valid = true;
}
}
/* parahotplug_worker */
parahotplug_process_list();
- if (time_after(jiffies,
- most_recent_message_jiffies + (HZ * MIN_IDLE_SECONDS))) {
+ if (time_after(jiffies, chipset_dev->most_recent_message_jiffies +
+ (HZ * MIN_IDLE_SECONDS))) {
/*
* it's been longer than MIN_IDLE_SECONDS since we
* processed our last controlvm message; slow down the
* polling
*/
- if (poll_jiffies != POLLJIFFIES_CONTROLVMCHANNEL_SLOW)
- poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_SLOW;
+ if (chipset_dev->poll_jiffies !=
+ POLLJIFFIES_CONTROLVMCHANNEL_SLOW)
+ chipset_dev->poll_jiffies =
+ POLLJIFFIES_CONTROLVMCHANNEL_SLOW;
} else {
- if (poll_jiffies != POLLJIFFIES_CONTROLVMCHANNEL_FAST)
- poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
+ if (chipset_dev->poll_jiffies !=
+ POLLJIFFIES_CONTROLVMCHANNEL_FAST)
+ chipset_dev->poll_jiffies =
+ POLLJIFFIES_CONTROLVMCHANNEL_FAST;
}
- schedule_delayed_work(&periodic_controlvm_work, poll_jiffies);
+ schedule_delayed_work(&chipset_dev->periodic_controlvm_work,
+ chipset_dev->poll_jiffies);
}
static int
@@ -1958,36 +1967,49 @@ visorchipset_init(struct acpi_device *acpi_device)
int err = -ENODEV;
u64 addr;
uuid_le uuid = SPAR_CONTROLVM_CHANNEL_PROTOCOL_UUID;
+ struct visorchannel *controlvm_channel;
addr = controlvm_get_channel_address();
if (!addr)
goto error;
- controlvm_channel = visorchannel_create_with_lock(addr, 0,
- GFP_KERNEL, uuid);
- if (!controlvm_channel)
+ chipset_dev = kzalloc(sizeof(*chipset_dev), GFP_KERNEL);
+ if (!chipset_dev)
goto error;
+ acpi_device->driver_data = chipset_dev;
+
+ chipset_dev->acpi_device = acpi_device;
+ chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
+ controlvm_channel = visorchannel_create_with_lock(addr,
+ 0, GFP_KERNEL, uuid);
+
+ if (!controlvm_channel)
+ goto error_free_chipset_dev;
+
+ chipset_dev->controlvm_channel = controlvm_channel;
if (!SPAR_CONTROLVM_CHANNEL_OK_CLIENT(
visorchannel_get_header(controlvm_channel)))
goto error_destroy_channel;
major_dev = MKDEV(visorchipset_major, 0);
- err = visorchipset_file_init(major_dev, &controlvm_channel);
+ err = visorchipset_file_init(major_dev,
+ &chipset_dev->controlvm_channel);
if (err < 0)
goto error_destroy_channel;
/* if booting in a crash kernel */
if (is_kdump_kernel())
- INIT_DELAYED_WORK(&periodic_controlvm_work,
+ INIT_DELAYED_WORK(&chipset_dev->periodic_controlvm_work,
setup_crash_devices_work_queue);
else
- INIT_DELAYED_WORK(&periodic_controlvm_work,
+ INIT_DELAYED_WORK(&chipset_dev->periodic_controlvm_work,
controlvm_periodic_work);
- most_recent_message_jiffies = jiffies;
- poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
- schedule_delayed_work(&periodic_controlvm_work, poll_jiffies);
+ chipset_dev->most_recent_message_jiffies = jiffies;
+ chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
+ schedule_delayed_work(&chipset_dev->periodic_controlvm_work,
+ chipset_dev->poll_jiffies);
visorchipset_platform_device.dev.devt = major_dev;
if (platform_device_register(&visorchipset_platform_device) < 0) {
@@ -2008,11 +2030,14 @@ visorchipset_init(struct acpi_device *acpi_device)
platform_device_unregister(&visorchipset_platform_device);
error_cancel_work:
- cancel_delayed_work_sync(&periodic_controlvm_work);
+ cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work);
visorchipset_file_cleanup(major_dev);
error_destroy_channel:
- visorchannel_destroy(controlvm_channel);
+ visorchannel_destroy(chipset_dev->controlvm_channel);
+
+error_free_chipset_dev:
+ kfree(chipset_dev);
error:
POSTCODE_LINUX(CHIPSET_INIT_FAILURE_PC, 0, err, DIAG_SEVERITY_ERR);
@@ -2026,12 +2051,14 @@ visorchipset_exit(struct acpi_device *acpi_device)
visorbus_exit();
- cancel_delayed_work_sync(&periodic_controlvm_work);
+ cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work);
- visorchannel_destroy(controlvm_channel);
+ visorchannel_destroy(chipset_dev->controlvm_channel);
visorchipset_file_cleanup(visorchipset_platform_device.dev.devt);
platform_device_unregister(&visorchipset_platform_device);
+ kfree(chipset_dev);
+
POSTCODE_LINUX(DRIVER_EXIT_PC, 0, 0, DIAG_SEVERITY_PRINT);
return 0;
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 11/12] staging: unisys: visorbus: remove character device interface
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (9 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 10/12] staging: unisys: visorbus: added struct visorchipset_device David Kershner
@ 2017-02-21 17:53 ` David Kershner
2017-02-21 17:53 ` [PATCH 12/12] staging: unisys: visorbus: remove visorchipset_platform_device David Kershner
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen
Cc: David Kershner, Sameer Wadgaonkar
From: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Removed the character device interface from visorchipset and
removed the major and minor numbers.
Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorchipset.c | 158 +------------------
1 file changed, 158 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index b3c3cdd..c120c46 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -15,7 +15,6 @@
*/
#include <linux/acpi.h>
-#include <linux/cdev.h>
#include <linux/ctype.h>
#include <linux/fs.h>
#include <linux/mm.h>
@@ -36,8 +35,6 @@
#define MAX_CONTROLVM_PAYLOAD_BYTES (1024 * 128)
-#define VISORCHIPSET_MMAP_CONTROLCHANOFFSET 0x00000000
-
#define UNISYS_SPAR_LEAF_ID 0x40000000
/* The s-Par leaf ID returns "UnisysSpar64" encoded across ebx, ecx, edx */
@@ -46,27 +43,6 @@
#define UNISYS_SPAR_ID_EDX 0x34367261
/*
- * Module parameters
- */
-static int visorchipset_major;
-
-static int
-visorchipset_open(struct inode *inode, struct file *file)
-{
- unsigned int minor_number = iminor(inode);
-
- if (minor_number)
- return -ENODEV;
- return 0;
-}
-
-static int
-visorchipset_release(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-/*
* When the controlvm channel is idle for at least MIN_IDLE_SECONDS,
* we switch to slow polling mode. As soon as we get a controlvm
* message, we switch back to fast polling mode.
@@ -88,8 +64,6 @@ struct visorchipset_device {
/* when we got our last controlvm message */
unsigned long most_recent_message_jiffies;
struct delayed_work periodic_controlvm_work;
- struct cdev file_cdev;
- struct visorchannel **file_controlvm_channel;
struct visorchannel *controlvm_channel;
unsigned long controlvm_payload_bytes_buffered;
/*
@@ -112,9 +86,6 @@ struct parahotplug_request {
struct controlvm_message msg;
};
-/* info for /dev/visorchipset */
-static dev_t major_dev = -1; /*< indicates major num for device */
-
/* prototypes for attributes */
static ssize_t toolaction_show(struct device *dev,
struct device_attribute *attr,
@@ -1537,46 +1508,6 @@ device_resume_response(struct visor_device *dev_info, int response)
dev_info->pending_msg_hdr = NULL;
}
-static int
-visorchipset_mmap(struct file *file, struct vm_area_struct *vma)
-{
- unsigned long physaddr = 0;
- unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
- u64 addr = 0;
-
- /* sv_enable_dfp(); */
- if (offset & (PAGE_SIZE - 1))
- return -ENXIO; /* need aligned offsets */
-
- switch (offset) {
- case VISORCHIPSET_MMAP_CONTROLCHANOFFSET:
- vma->vm_flags |= VM_IO;
- if (!*chipset_dev->file_controlvm_channel)
- return -ENXIO;
-
- visorchannel_read
- (*chipset_dev->file_controlvm_channel,
- offsetof(struct spar_controlvm_channel_protocol,
- gp_control_channel),
- &addr, sizeof(addr));
- if (!addr)
- return -ENXIO;
-
- physaddr = (unsigned long)addr;
- if (remap_pfn_range(vma, vma->vm_start,
- physaddr >> PAGE_SHIFT,
- vma->vm_end - vma->vm_start,
- /*pgprot_noncached */
- (vma->vm_page_prot))) {
- return -EAGAIN;
- }
- break;
- default:
- return -ENXIO;
- }
- return 0;
-}
-
static inline s64 issue_vmcall_query_guest_virtual_time_offset(void)
{
u64 result = VMCALL_SUCCESS;
@@ -1595,79 +1526,6 @@ static inline int issue_vmcall_update_physical_time(u64 adjustment)
return result;
}
-static long visorchipset_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- u64 adjustment;
- s64 vrtc_offset;
-
- switch (cmd) {
- case VMCALL_QUERY_GUEST_VIRTUAL_TIME_OFFSET:
- /* get the physical rtc offset */
- vrtc_offset = issue_vmcall_query_guest_virtual_time_offset();
- if (copy_to_user((void __user *)arg, &vrtc_offset,
- sizeof(vrtc_offset))) {
- return -EFAULT;
- }
- return 0;
- case VMCALL_UPDATE_PHYSICAL_TIME:
- if (copy_from_user(&adjustment, (void __user *)arg,
- sizeof(adjustment))) {
- return -EFAULT;
- }
- return issue_vmcall_update_physical_time(adjustment);
- default:
- return -EFAULT;
- }
-}
-
-static const struct file_operations visorchipset_fops = {
- .owner = THIS_MODULE,
- .open = visorchipset_open,
- .read = NULL,
- .write = NULL,
- .unlocked_ioctl = visorchipset_ioctl,
- .release = visorchipset_release,
- .mmap = visorchipset_mmap,
-};
-
-static int
-visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
-{
- int rc = 0;
-
- chipset_dev->file_controlvm_channel = controlvm_channel;
- cdev_init(&chipset_dev->file_cdev, &visorchipset_fops);
- chipset_dev->file_cdev.owner = THIS_MODULE;
- if (MAJOR(major_dev) == 0) {
- rc = alloc_chrdev_region(&major_dev, 0, 1, "visorchipset");
- /* dynamic major device number registration required */
- if (rc < 0)
- return rc;
- } else {
- /* static major device number registration required */
- rc = register_chrdev_region(major_dev, 1, "visorchipset");
- if (rc < 0)
- return rc;
- }
- rc = cdev_add(&chipset_dev->file_cdev,
- MKDEV(MAJOR(major_dev), 0), 1);
- if (rc < 0) {
- unregister_chrdev_region(major_dev, 1);
- return rc;
- }
- return 0;
-}
-
-static void
-visorchipset_file_cleanup(dev_t major_dev)
-{
- if (chipset_dev->file_cdev.ops)
- cdev_del(&chipset_dev->file_cdev);
- chipset_dev->file_cdev.ops = NULL;
- unregister_chrdev_region(major_dev, 1);
-}
-
static struct parser_context *
parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
{
@@ -1992,12 +1850,6 @@ visorchipset_init(struct acpi_device *acpi_device)
visorchannel_get_header(controlvm_channel)))
goto error_destroy_channel;
- major_dev = MKDEV(visorchipset_major, 0);
- err = visorchipset_file_init(major_dev,
- &chipset_dev->controlvm_channel);
- if (err < 0)
- goto error_destroy_channel;
-
/* if booting in a crash kernel */
if (is_kdump_kernel())
INIT_DELAYED_WORK(&chipset_dev->periodic_controlvm_work,
@@ -2011,7 +1863,6 @@ visorchipset_init(struct acpi_device *acpi_device)
schedule_delayed_work(&chipset_dev->periodic_controlvm_work,
chipset_dev->poll_jiffies);
- visorchipset_platform_device.dev.devt = major_dev;
if (platform_device_register(&visorchipset_platform_device) < 0) {
POSTCODE_LINUX(DEVICE_REGISTER_FAILURE_PC, 0, 0,
DIAG_SEVERITY_ERR);
@@ -2031,7 +1882,6 @@ visorchipset_init(struct acpi_device *acpi_device)
error_cancel_work:
cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work);
- visorchipset_file_cleanup(major_dev);
error_destroy_channel:
visorchannel_destroy(chipset_dev->controlvm_channel);
@@ -2050,12 +1900,8 @@ visorchipset_exit(struct acpi_device *acpi_device)
POSTCODE_LINUX(DRIVER_EXIT_PC, 0, 0, DIAG_SEVERITY_PRINT);
visorbus_exit();
-
cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work);
-
visorchannel_destroy(chipset_dev->controlvm_channel);
-
- visorchipset_file_cleanup(visorchipset_platform_device.dev.devt);
platform_device_unregister(&visorchipset_platform_device);
kfree(chipset_dev);
@@ -2117,10 +1963,6 @@ static void exit_unisys(void)
acpi_bus_unregister_driver(&unisys_acpi_driver);
}
-module_param_named(major, visorchipset_major, int, 0444);
-MODULE_PARM_DESC(visorchipset_major,
- "major device number to use for the device node");
-
module_init(init_unisys);
module_exit(exit_unisys);
--
git-series 0.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 12/12] staging: unisys: visorbus: remove visorchipset_platform_device
2017-02-21 17:53 [PATCH 00/12] staging: unisys: remove platform device and use acpi device David Kershner
` (10 preceding siblings ...)
2017-02-21 17:53 ` [PATCH 11/12] staging: unisys: visorbus: remove character device interface David Kershner
@ 2017-02-21 17:53 ` David Kershner
11 siblings, 0 replies; 13+ messages in thread
From: David Kershner @ 2017-02-21 17:53 UTC (permalink / raw)
To: gregkh, driverdev-devel, sparmaintainer, jes.sorensen; +Cc: Sameer Wadgaonkar
From: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Removed visorchipset_platform_device and all the unused structures
and functions and using chipset_dev.acpi_device instead.
Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Tim Sell <timothy.sell@unisys.com>
---
drivers/staging/unisys/visorbus/visorchipset.c | 48 +++++++------------
1 file changed, 19 insertions(+), 29 deletions(-)
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index c120c46..cce1974 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -20,7 +20,6 @@
#include <linux/mm.h>
#include <linux/nls.h>
#include <linux/netdevice.h>
-#include <linux/platform_device.h>
#include <linux/uuid.h>
#include <linux/crash_dump.h>
@@ -1175,18 +1174,6 @@ static const struct attribute_group *visorchipset_dev_groups[] = {
NULL
};
-static void visorchipset_dev_release(struct device *dev)
-{
-}
-
-/* /sys/devices/platform/visorchipset */
-static struct platform_device visorchipset_platform_device = {
- .name = "visorchipset",
- .id = -1,
- .dev.groups = visorchipset_dev_groups,
- .dev.release = visorchipset_dev_release,
-};
-
/*
* parahotplug_request_kickoff() - initiate parahotplug request
* @req: the request to initiate
@@ -1215,7 +1202,7 @@ parahotplug_request_kickoff(struct parahotplug_request *req)
sprintf(env_func, "SPAR_PARAHOTPLUG_FUNCTION=%d",
cmd->device_change_state.dev_no & 0x7);
- kobject_uevent_env(&visorchipset_platform_device.dev.kobj, KOBJ_CHANGE,
+ kobject_uevent_env(&chipset_dev->acpi_device->dev.kobj, KOBJ_CHANGE,
envp);
}
@@ -1277,7 +1264,7 @@ parahotplug_process_message(struct controlvm_message *inmsg)
static int
chipset_ready_uevent(struct controlvm_message_header *msg_hdr)
{
- kobject_uevent(&visorchipset_platform_device.dev.kobj, KOBJ_ONLINE);
+ kobject_uevent(&chipset_dev->acpi_device->dev.kobj, KOBJ_ONLINE);
if (msg_hdr->flags.response_expected)
return controlvm_respond(msg_hdr, CONTROLVM_RESP_SUCCESS);
@@ -1299,7 +1286,7 @@ chipset_selftest_uevent(struct controlvm_message_header *msg_hdr)
char *envp[] = { env_selftest, NULL };
sprintf(env_selftest, "SPARSP_SELFTEST=%d", 1);
- kobject_uevent_env(&visorchipset_platform_device.dev.kobj, KOBJ_CHANGE,
+ kobject_uevent_env(&chipset_dev->acpi_device->dev.kobj, KOBJ_CHANGE,
envp);
if (msg_hdr->flags.response_expected)
@@ -1318,7 +1305,7 @@ chipset_selftest_uevent(struct controlvm_message_header *msg_hdr)
static int
chipset_notready_uevent(struct controlvm_message_header *msg_hdr)
{
- kobject_uevent(&visorchipset_platform_device.dev.kobj, KOBJ_OFFLINE);
+ kobject_uevent(&chipset_dev->acpi_device->dev.kobj, KOBJ_OFFLINE);
if (msg_hdr->flags.response_expected)
return controlvm_respond(msg_hdr, CONTROLVM_RESP_SUCCESS);
@@ -1846,9 +1833,15 @@ visorchipset_init(struct acpi_device *acpi_device)
goto error_free_chipset_dev;
chipset_dev->controlvm_channel = controlvm_channel;
+
+ err = sysfs_create_groups(&chipset_dev->acpi_device->dev.kobj,
+ visorchipset_dev_groups);
+ if (err < 0)
+ goto error_destroy_channel;
+
if (!SPAR_CONTROLVM_CHANNEL_OK_CLIENT(
visorchannel_get_header(controlvm_channel)))
- goto error_destroy_channel;
+ goto error_delete_groups;
/* if booting in a crash kernel */
if (is_kdump_kernel())
@@ -1863,26 +1856,21 @@ visorchipset_init(struct acpi_device *acpi_device)
schedule_delayed_work(&chipset_dev->periodic_controlvm_work,
chipset_dev->poll_jiffies);
- if (platform_device_register(&visorchipset_platform_device) < 0) {
- POSTCODE_LINUX(DEVICE_REGISTER_FAILURE_PC, 0, 0,
- DIAG_SEVERITY_ERR);
- err = -ENODEV;
- goto error_cancel_work;
- }
POSTCODE_LINUX(CHIPSET_INIT_SUCCESS_PC, 0, 0, DIAG_SEVERITY_PRINT);
err = visorbus_init();
if (err < 0)
- goto error_unregister;
+ goto error_cancel_work;
return 0;
-error_unregister:
- platform_device_unregister(&visorchipset_platform_device);
-
error_cancel_work:
cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work);
+error_delete_groups:
+ sysfs_remove_groups(&chipset_dev->acpi_device->dev.kobj,
+ visorchipset_dev_groups);
+
error_destroy_channel:
visorchannel_destroy(chipset_dev->controlvm_channel);
@@ -1901,8 +1889,10 @@ visorchipset_exit(struct acpi_device *acpi_device)
visorbus_exit();
cancel_delayed_work_sync(&chipset_dev->periodic_controlvm_work);
+ sysfs_remove_groups(&chipset_dev->acpi_device->dev.kobj,
+ visorchipset_dev_groups);
+
visorchannel_destroy(chipset_dev->controlvm_channel);
- platform_device_unregister(&visorchipset_platform_device);
kfree(chipset_dev);
POSTCODE_LINUX(DRIVER_EXIT_PC, 0, 0, DIAG_SEVERITY_PRINT);
--
git-series 0.9.1
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 13+ messages in thread