mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
s390/chsc: query utility strings via fmt3 channel path descriptor
Add support for format 3 channel path descriptors and use them to gather utility strings. Signed-off-by: Sebastian Ott <[email protected]> Reviewed-by: Peter Oberparleiter <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]>
This commit is contained in:
parent
ded27d8d2e
commit
fcc6dd4b7b
5 changed files with 16 additions and 2 deletions
|
|
@ -431,6 +431,7 @@ int chp_update_desc(struct channel_path *chp)
|
|||
* hypervisors implement the required chsc commands.
|
||||
*/
|
||||
chsc_determine_fmt1_channel_path_desc(chp->chpid, &chp->desc_fmt1);
|
||||
chsc_determine_fmt3_channel_path_desc(chp->chpid, &chp->desc_fmt3);
|
||||
chsc_get_channel_measurement_chars(chp);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ struct channel_path {
|
|||
int state;
|
||||
struct channel_path_desc_fmt0 desc;
|
||||
struct channel_path_desc_fmt1 desc_fmt1;
|
||||
struct channel_path_desc_fmt3 desc_fmt3;
|
||||
/* Channel-measurement related stuff: */
|
||||
int cmg;
|
||||
int shared;
|
||||
|
|
|
|||
|
|
@ -915,6 +915,8 @@ int chsc_determine_channel_path_desc(struct chp_id chpid, int fmt, int rfmt,
|
|||
return -EINVAL;
|
||||
if ((rfmt == 2) && !css_general_characteristics.cib)
|
||||
return -EINVAL;
|
||||
if ((rfmt == 3) && !css_general_characteristics.util_str)
|
||||
return -EINVAL;
|
||||
|
||||
memset(page, 0, PAGE_SIZE);
|
||||
scpd_area = page;
|
||||
|
|
@ -963,6 +965,7 @@ out: \
|
|||
|
||||
chsc_det_chp_desc(0, 0)
|
||||
chsc_det_chp_desc(1, 1)
|
||||
chsc_det_chp_desc(3, 0)
|
||||
|
||||
static void
|
||||
chsc_initialize_cmg_chars(struct channel_path *chp, u8 cmcv,
|
||||
|
|
|
|||
|
|
@ -40,6 +40,11 @@ struct channel_path_desc_fmt1 {
|
|||
u32 zeros[2];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct channel_path_desc_fmt3 {
|
||||
struct channel_path_desc_fmt1 fmt1_desc;
|
||||
u8 util_str[64];
|
||||
};
|
||||
|
||||
struct channel_path;
|
||||
|
||||
struct css_chsc_char {
|
||||
|
|
@ -151,6 +156,8 @@ int chsc_determine_fmt0_channel_path_desc(struct chp_id chpid,
|
|||
struct channel_path_desc_fmt0 *desc);
|
||||
int chsc_determine_fmt1_channel_path_desc(struct chp_id chpid,
|
||||
struct channel_path_desc_fmt1 *desc);
|
||||
int chsc_determine_fmt3_channel_path_desc(struct chp_id chpid,
|
||||
struct channel_path_desc_fmt3 *desc);
|
||||
void chsc_chp_online(struct chp_id chpid);
|
||||
void chsc_chp_offline(struct chp_id chpid);
|
||||
int chsc_get_channel_measurement_chars(struct channel_path *chp);
|
||||
|
|
|
|||
Loading…
Reference in a new issue