1aa5b395bSMikhail Zaslonko // SPDX-License-Identifier: Zlib 2aa5b395bSMikhail Zaslonko /* dfltcc.c - SystemZ DEFLATE CONVERSION CALL support. */ 3aa5b395bSMikhail Zaslonko 4605cc30dSRandy Dunlap #include <linux/export.h> 5605cc30dSRandy Dunlap #include <linux/module.h> 6aa5b395bSMikhail Zaslonko #include "dfltcc_util.h" 7aa5b395bSMikhail Zaslonko #include "dfltcc.h" 8aa5b395bSMikhail Zaslonko 9aa5b395bSMikhail Zaslonko char *oesc_msg( 10aa5b395bSMikhail Zaslonko char *buf, 11aa5b395bSMikhail Zaslonko int oesc 12aa5b395bSMikhail Zaslonko ) 13aa5b395bSMikhail Zaslonko { 14aa5b395bSMikhail Zaslonko if (oesc == 0x00) 15aa5b395bSMikhail Zaslonko return NULL; /* Successful completion */ 16aa5b395bSMikhail Zaslonko else { 17aa5b395bSMikhail Zaslonko #ifdef STATIC 18aa5b395bSMikhail Zaslonko return NULL; /* Ignore for pre-boot decompressor */ 19aa5b395bSMikhail Zaslonko #else 20aa5b395bSMikhail Zaslonko sprintf(buf, "Operation-Ending-Supplemental Code is 0x%.2X", oesc); 21aa5b395bSMikhail Zaslonko return buf; 22aa5b395bSMikhail Zaslonko #endif 23aa5b395bSMikhail Zaslonko } 24aa5b395bSMikhail Zaslonko } 25aa5b395bSMikhail Zaslonko 26*9fec9f8eSMikhail Zaslonko void dfltcc_reset_state(struct dfltcc_state *dfltcc_state) { 27aa5b395bSMikhail Zaslonko /* Initialize available functions */ 28aa5b395bSMikhail Zaslonko if (is_dfltcc_enabled()) { 29*9fec9f8eSMikhail Zaslonko dfltcc(DFLTCC_QAF, &dfltcc_state->param, NULL, NULL, NULL, NULL, NULL); 30*9fec9f8eSMikhail Zaslonko memmove(&dfltcc_state->af, &dfltcc_state->param, sizeof(dfltcc_state->af)); 31aa5b395bSMikhail Zaslonko } else 32aa5b395bSMikhail Zaslonko memset(&dfltcc_state->af, 0, sizeof(dfltcc_state->af)); 33aa5b395bSMikhail Zaslonko 34aa5b395bSMikhail Zaslonko /* Initialize parameter block */ 35aa5b395bSMikhail Zaslonko memset(&dfltcc_state->param, 0, sizeof(dfltcc_state->param)); 36aa5b395bSMikhail Zaslonko dfltcc_state->param.nt = 1; 37aa5b395bSMikhail Zaslonko dfltcc_state->param.ribm = DFLTCC_RIBM; 38aa5b395bSMikhail Zaslonko } 39605cc30dSRandy Dunlap 40605cc30dSRandy Dunlap MODULE_LICENSE("GPL"); 41