On Tue, Sep 5, 2017 at 8:37 AM, <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> wrote: > From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> > > Currently intel_scu_ipc.c, intel_pmc_ipc.c and intel_punit_ipc.c > redundantly implements the same IPC features and has lot of code > duplication between them. This driver addresses this issue by grouping > the common IPC functionalities under the same driver. > +static const char *ipc_dev_err_string(struct intel_ipc_dev *ipc_dev, > + int error) > +{ > + switch (error) { > + case IPC_DEV_ERR_NONE: > + return "No error"; > + case IPC_DEV_ERR_CMD_NOT_SUPPORTED: > + return "Command not-supported/Invalid"; > + case IPC_DEV_ERR_CMD_NOT_SERVICED: > + return "Command not-serviced/Invalid param"; > + case IPC_DEV_ERR_UNABLE_TO_SERVICE: > + return "Unable-to-service/Cmd-timeout"; > + case IPC_DEV_ERR_CMD_INVALID: > + return "Command-invalid/Cmd-locked"; > + case IPC_DEV_ERR_CMD_FAILED: > + return "Command-failed/Invalid-VR-id"; > + case IPC_DEV_ERR_EMSECURITY: > + return "Invalid Battery/VR-Error"; > + case IPC_DEV_ERR_UNSIGNEDKERNEL: > + return "Unsigned kernel"; > + default: > + return "Unknown Command"; > + }; > +} Since it's continuous list you can define an array of messages like const char * const *errors = { [..._ERR_...] = "", ... }; Also you can use enum in the header and define _ERR_MAX there. Thus, code would be transformed to if (error < _ERR_MAX) return errors[error]; return "Unknown Command"; -- With Best Regards, Andy Shevchenko