blob: 416a6a28c9d90b5e812e249ce57851c86973e448 [file] [log] [blame]
developerfd40db22021-04-29 10:08:25 +08001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2020 MediaTek Inc. All Rights Reserved.
4 *
5 * Author: Weijie Gao <weijie.gao@mediatek.com>
6 */
7
8#include "mtk-snand-def.h"
9
10int mtk_snand_log(struct mtk_snand_plat_dev *pdev,
11 enum mtk_snand_log_category cat, const char *fmt, ...)
12{
13 const char *catname = "";
14 va_list ap;
15 char *msg;
16
17 switch (cat) {
18 case SNAND_LOG_NFI:
19 catname = "NFI";
20 break;
21 case SNAND_LOG_SNFI:
22 catname = "SNFI";
23 break;
24 case SNAND_LOG_ECC:
25 catname = "ECC";
26 break;
27 default:
28 break;
29 }
30
31 va_start(ap, fmt);
32 msg = kvasprintf(GFP_KERNEL, fmt, ap);
33 va_end(ap);
34
35 if (!msg) {
36 dev_warn(pdev->dev, "unable to print log\n");
37 return -1;
38 }
39
40 if (*catname)
41 dev_warn(pdev->dev, "%s: %s", catname, msg);
42 else
43 dev_warn(pdev->dev, "%s", msg);
44
45 kfree(msg);
46
47 return 0;
48}
developer8c414ee2023-06-20 19:08:04 +080049
50void mtk_snand_control_poll_mode(struct mtk_snand_plat_dev *pdev, bool enable)
51{
52 if (!pdev)
53 return;
54
55 if (pdev->poll_mode != enable)
56 dev_info(pdev->dev, "Poll mode %s\b", enable ? "enabled" :
57 "disabled");
58
59 pdev->poll_mode = enable;
60}