Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/panel: truly-nt35521: transition to mipi_dsi wrapped functions

Use functions introduced in commit 966e397e4f60 ("drm/mipi-dsi: Introduce
mipi_dsi_*_write_seq_multi()") and commit f79d6d28d8fe
("drm/mipi-dsi: wrap more functions for streamline handling") for the
sony tulip truly nt35521 panel.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Tejas Vipin <tejasvipin76@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240612163946.488684-1-tejasvipin76@gmail.com

authored by

Tejas Vipin and committed by
Douglas Anderson
c62b4fc4 0ddd2ae5

+206 -225
+206 -225
drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c
··· 44 44 static int truly_nt35521_on(struct truly_nt35521 *ctx) 45 45 { 46 46 struct mipi_dsi_device *dsi = ctx->dsi; 47 - struct device *dev = &dsi->dev; 48 - int ret; 47 + struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi }; 49 48 50 49 dsi->mode_flags |= MIPI_DSI_MODE_LPM; 51 50 52 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); 53 - mipi_dsi_generic_write_seq(dsi, 0xff, 0xaa, 0x55, 0xa5, 0x80); 54 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x11, 0x00); 55 - mipi_dsi_generic_write_seq(dsi, 0xf7, 0x20, 0x00); 56 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x01); 57 - mipi_dsi_generic_write_seq(dsi, 0xb1, 0x21); 58 - mipi_dsi_generic_write_seq(dsi, 0xbd, 0x01, 0xa0, 0x10, 0x08, 0x01); 59 - mipi_dsi_generic_write_seq(dsi, 0xb8, 0x01, 0x02, 0x0c, 0x02); 60 - mipi_dsi_generic_write_seq(dsi, 0xbb, 0x11, 0x11); 61 - mipi_dsi_generic_write_seq(dsi, 0xbc, 0x00, 0x00); 62 - mipi_dsi_generic_write_seq(dsi, 0xb6, 0x02); 63 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x01); 64 - mipi_dsi_generic_write_seq(dsi, 0xb0, 0x09, 0x09); 65 - mipi_dsi_generic_write_seq(dsi, 0xb1, 0x09, 0x09); 66 - mipi_dsi_generic_write_seq(dsi, 0xbc, 0x8c, 0x00); 67 - mipi_dsi_generic_write_seq(dsi, 0xbd, 0x8c, 0x00); 68 - mipi_dsi_generic_write_seq(dsi, 0xca, 0x00); 69 - mipi_dsi_generic_write_seq(dsi, 0xc0, 0x04); 70 - mipi_dsi_generic_write_seq(dsi, 0xbe, 0xb5); 71 - mipi_dsi_generic_write_seq(dsi, 0xb3, 0x35, 0x35); 72 - mipi_dsi_generic_write_seq(dsi, 0xb4, 0x25, 0x25); 73 - mipi_dsi_generic_write_seq(dsi, 0xb9, 0x43, 0x43); 74 - mipi_dsi_generic_write_seq(dsi, 0xba, 0x24, 0x24); 75 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x02); 76 - mipi_dsi_generic_write_seq(dsi, 0xee, 0x03); 77 - mipi_dsi_generic_write_seq(dsi, 0xb0, 78 - 0x00, 0xb2, 0x00, 0xb3, 0x00, 0xb6, 0x00, 0xc3, 79 - 0x00, 0xce, 0x00, 0xe1, 0x00, 0xf3, 0x01, 0x11); 80 - mipi_dsi_generic_write_seq(dsi, 0xb1, 81 - 0x01, 0x2e, 0x01, 0x5c, 0x01, 0x82, 0x01, 0xc3, 82 - 0x01, 0xfe, 0x02, 0x00, 0x02, 0x37, 0x02, 0x77); 83 - mipi_dsi_generic_write_seq(dsi, 0xb2, 84 - 0x02, 0xa1, 0x02, 0xd7, 0x02, 0xfe, 0x03, 0x2c, 85 - 0x03, 0x4b, 0x03, 0x63, 0x03, 0x8f, 0x03, 0x90); 86 - mipi_dsi_generic_write_seq(dsi, 0xb3, 0x03, 0x96, 0x03, 0x98); 87 - mipi_dsi_generic_write_seq(dsi, 0xb4, 88 - 0x00, 0x81, 0x00, 0x8b, 0x00, 0x9c, 0x00, 0xa9, 89 - 0x00, 0xb5, 0x00, 0xcb, 0x00, 0xdf, 0x01, 0x02); 90 - mipi_dsi_generic_write_seq(dsi, 0xb5, 91 - 0x01, 0x1f, 0x01, 0x51, 0x01, 0x7a, 0x01, 0xbf, 92 - 0x01, 0xfa, 0x01, 0xfc, 0x02, 0x34, 0x02, 0x76); 93 - mipi_dsi_generic_write_seq(dsi, 0xb6, 94 - 0x02, 0x9f, 0x02, 0xd7, 0x02, 0xfc, 0x03, 0x2c, 95 - 0x03, 0x4a, 0x03, 0x63, 0x03, 0x8f, 0x03, 0xa2); 96 - mipi_dsi_generic_write_seq(dsi, 0xb7, 0x03, 0xb8, 0x03, 0xba); 97 - mipi_dsi_generic_write_seq(dsi, 0xb8, 98 - 0x00, 0x01, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x2a, 99 - 0x00, 0x41, 0x00, 0x67, 0x00, 0x87, 0x00, 0xb9); 100 - mipi_dsi_generic_write_seq(dsi, 0xb9, 101 - 0x00, 0xe2, 0x01, 0x22, 0x01, 0x54, 0x01, 0xa3, 102 - 0x01, 0xe6, 0x01, 0xe7, 0x02, 0x24, 0x02, 0x67); 103 - mipi_dsi_generic_write_seq(dsi, 0xba, 104 - 0x02, 0x93, 0x02, 0xcd, 0x02, 0xf6, 0x03, 0x31, 105 - 0x03, 0x6c, 0x03, 0xe9, 0x03, 0xef, 0x03, 0xf4); 106 - mipi_dsi_generic_write_seq(dsi, 0xbb, 0x03, 0xf6, 0x03, 0xf7); 107 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x03); 108 - mipi_dsi_generic_write_seq(dsi, 0xb0, 0x22, 0x00); 109 - mipi_dsi_generic_write_seq(dsi, 0xb1, 0x22, 0x00); 110 - mipi_dsi_generic_write_seq(dsi, 0xb2, 0x05, 0x00, 0x60, 0x00, 0x00); 111 - mipi_dsi_generic_write_seq(dsi, 0xb3, 0x05, 0x00, 0x60, 0x00, 0x00); 112 - mipi_dsi_generic_write_seq(dsi, 0xb4, 0x05, 0x00, 0x60, 0x00, 0x00); 113 - mipi_dsi_generic_write_seq(dsi, 0xb5, 0x05, 0x00, 0x60, 0x00, 0x00); 114 - mipi_dsi_generic_write_seq(dsi, 0xba, 0x53, 0x00, 0x60, 0x00, 0x00); 115 - mipi_dsi_generic_write_seq(dsi, 0xbb, 0x53, 0x00, 0x60, 0x00, 0x00); 116 - mipi_dsi_generic_write_seq(dsi, 0xbc, 0x53, 0x00, 0x60, 0x00, 0x00); 117 - mipi_dsi_generic_write_seq(dsi, 0xbd, 0x53, 0x00, 0x60, 0x00, 0x00); 118 - mipi_dsi_generic_write_seq(dsi, 0xc0, 0x00, 0x34, 0x00, 0x00); 119 - mipi_dsi_generic_write_seq(dsi, 0xc1, 0x00, 0x00, 0x34, 0x00); 120 - mipi_dsi_generic_write_seq(dsi, 0xc2, 0x00, 0x00, 0x34, 0x00); 121 - mipi_dsi_generic_write_seq(dsi, 0xc3, 0x00, 0x00, 0x34, 0x00); 122 - mipi_dsi_generic_write_seq(dsi, 0xc4, 0x60); 123 - mipi_dsi_generic_write_seq(dsi, 0xc5, 0xc0); 124 - mipi_dsi_generic_write_seq(dsi, 0xc6, 0x00); 125 - mipi_dsi_generic_write_seq(dsi, 0xc7, 0x00); 126 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x05); 127 - mipi_dsi_generic_write_seq(dsi, 0xb0, 0x17, 0x06); 128 - mipi_dsi_generic_write_seq(dsi, 0xb1, 0x17, 0x06); 129 - mipi_dsi_generic_write_seq(dsi, 0xb2, 0x17, 0x06); 130 - mipi_dsi_generic_write_seq(dsi, 0xb3, 0x17, 0x06); 131 - mipi_dsi_generic_write_seq(dsi, 0xb4, 0x17, 0x06); 132 - mipi_dsi_generic_write_seq(dsi, 0xb5, 0x17, 0x06); 133 - mipi_dsi_generic_write_seq(dsi, 0xb6, 0x17, 0x06); 134 - mipi_dsi_generic_write_seq(dsi, 0xb7, 0x17, 0x06); 135 - mipi_dsi_generic_write_seq(dsi, 0xb8, 0x00); 136 - mipi_dsi_generic_write_seq(dsi, 0xb9, 0x00, 0x03); 137 - mipi_dsi_generic_write_seq(dsi, 0xba, 0x00, 0x00); 138 - mipi_dsi_generic_write_seq(dsi, 0xbb, 0x02, 0x03); 139 - mipi_dsi_generic_write_seq(dsi, 0xbc, 0x02, 0x03); 140 - mipi_dsi_generic_write_seq(dsi, 0xbd, 0x03, 0x03, 0x00, 0x03, 0x03); 141 - mipi_dsi_generic_write_seq(dsi, 0xc0, 0x0b); 142 - mipi_dsi_generic_write_seq(dsi, 0xc1, 0x09); 143 - mipi_dsi_generic_write_seq(dsi, 0xc2, 0xa6); 144 - mipi_dsi_generic_write_seq(dsi, 0xc3, 0x05); 145 - mipi_dsi_generic_write_seq(dsi, 0xc4, 0x00); 146 - mipi_dsi_generic_write_seq(dsi, 0xc5, 0x02); 147 - mipi_dsi_generic_write_seq(dsi, 0xc6, 0x22); 148 - mipi_dsi_generic_write_seq(dsi, 0xc7, 0x03); 149 - mipi_dsi_generic_write_seq(dsi, 0xc8, 0x07, 0x20); 150 - mipi_dsi_generic_write_seq(dsi, 0xc9, 0x03, 0x20); 151 - mipi_dsi_generic_write_seq(dsi, 0xca, 0x01, 0x60); 152 - mipi_dsi_generic_write_seq(dsi, 0xcb, 0x01, 0x60); 153 - mipi_dsi_generic_write_seq(dsi, 0xcc, 0x00, 0x00, 0x02); 154 - mipi_dsi_generic_write_seq(dsi, 0xcd, 0x00, 0x00, 0x02); 155 - mipi_dsi_generic_write_seq(dsi, 0xce, 0x00, 0x00, 0x02); 156 - mipi_dsi_generic_write_seq(dsi, 0xcf, 0x00, 0x00, 0x02); 157 - mipi_dsi_generic_write_seq(dsi, 0xd1, 0x00, 0x05, 0x01, 0x07, 0x10); 158 - mipi_dsi_generic_write_seq(dsi, 0xd2, 0x10, 0x05, 0x05, 0x03, 0x10); 159 - mipi_dsi_generic_write_seq(dsi, 0xd3, 0x20, 0x00, 0x43, 0x07, 0x10); 160 - mipi_dsi_generic_write_seq(dsi, 0xd4, 0x30, 0x00, 0x43, 0x07, 0x10); 161 - mipi_dsi_generic_write_seq(dsi, 0xd0, 162 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); 163 - mipi_dsi_generic_write_seq(dsi, 0xd5, 164 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 165 - 0x00, 0x00, 0x00); 166 - mipi_dsi_generic_write_seq(dsi, 0xd6, 167 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 168 - 0x00, 0x00, 0x00); 169 - mipi_dsi_generic_write_seq(dsi, 0xd7, 170 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 171 - 0x00, 0x00, 0x00); 172 - mipi_dsi_generic_write_seq(dsi, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00); 173 - mipi_dsi_generic_write_seq(dsi, 0xe5, 0x06); 174 - mipi_dsi_generic_write_seq(dsi, 0xe6, 0x06); 175 - mipi_dsi_generic_write_seq(dsi, 0xe7, 0x00); 176 - mipi_dsi_generic_write_seq(dsi, 0xe8, 0x06); 177 - mipi_dsi_generic_write_seq(dsi, 0xe9, 0x06); 178 - mipi_dsi_generic_write_seq(dsi, 0xea, 0x06); 179 - mipi_dsi_generic_write_seq(dsi, 0xeb, 0x00); 180 - mipi_dsi_generic_write_seq(dsi, 0xec, 0x00); 181 - mipi_dsi_generic_write_seq(dsi, 0xed, 0x30); 182 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x06); 183 - mipi_dsi_generic_write_seq(dsi, 0xb0, 0x31, 0x31); 184 - mipi_dsi_generic_write_seq(dsi, 0xb1, 0x31, 0x31); 185 - mipi_dsi_generic_write_seq(dsi, 0xb2, 0x2d, 0x2e); 186 - mipi_dsi_generic_write_seq(dsi, 0xb3, 0x31, 0x34); 187 - mipi_dsi_generic_write_seq(dsi, 0xb4, 0x29, 0x2a); 188 - mipi_dsi_generic_write_seq(dsi, 0xb5, 0x12, 0x10); 189 - mipi_dsi_generic_write_seq(dsi, 0xb6, 0x18, 0x16); 190 - mipi_dsi_generic_write_seq(dsi, 0xb7, 0x00, 0x02); 191 - mipi_dsi_generic_write_seq(dsi, 0xb8, 0x08, 0x31); 192 - mipi_dsi_generic_write_seq(dsi, 0xb9, 0x31, 0x31); 193 - mipi_dsi_generic_write_seq(dsi, 0xba, 0x31, 0x31); 194 - mipi_dsi_generic_write_seq(dsi, 0xbb, 0x31, 0x08); 195 - mipi_dsi_generic_write_seq(dsi, 0xbc, 0x03, 0x01); 196 - mipi_dsi_generic_write_seq(dsi, 0xbd, 0x17, 0x19); 197 - mipi_dsi_generic_write_seq(dsi, 0xbe, 0x11, 0x13); 198 - mipi_dsi_generic_write_seq(dsi, 0xbf, 0x2a, 0x29); 199 - mipi_dsi_generic_write_seq(dsi, 0xc0, 0x34, 0x31); 200 - mipi_dsi_generic_write_seq(dsi, 0xc1, 0x2e, 0x2d); 201 - mipi_dsi_generic_write_seq(dsi, 0xc2, 0x31, 0x31); 202 - mipi_dsi_generic_write_seq(dsi, 0xc3, 0x31, 0x31); 203 - mipi_dsi_generic_write_seq(dsi, 0xc4, 0x31, 0x31); 204 - mipi_dsi_generic_write_seq(dsi, 0xc5, 0x31, 0x31); 205 - mipi_dsi_generic_write_seq(dsi, 0xc6, 0x2e, 0x2d); 206 - mipi_dsi_generic_write_seq(dsi, 0xc7, 0x31, 0x34); 207 - mipi_dsi_generic_write_seq(dsi, 0xc8, 0x29, 0x2a); 208 - mipi_dsi_generic_write_seq(dsi, 0xc9, 0x17, 0x19); 209 - mipi_dsi_generic_write_seq(dsi, 0xca, 0x11, 0x13); 210 - mipi_dsi_generic_write_seq(dsi, 0xcb, 0x03, 0x01); 211 - mipi_dsi_generic_write_seq(dsi, 0xcc, 0x08, 0x31); 212 - mipi_dsi_generic_write_seq(dsi, 0xcd, 0x31, 0x31); 213 - mipi_dsi_generic_write_seq(dsi, 0xce, 0x31, 0x31); 214 - mipi_dsi_generic_write_seq(dsi, 0xcf, 0x31, 0x08); 215 - mipi_dsi_generic_write_seq(dsi, 0xd0, 0x00, 0x02); 216 - mipi_dsi_generic_write_seq(dsi, 0xd1, 0x12, 0x10); 217 - mipi_dsi_generic_write_seq(dsi, 0xd2, 0x18, 0x16); 218 - mipi_dsi_generic_write_seq(dsi, 0xd3, 0x2a, 0x29); 219 - mipi_dsi_generic_write_seq(dsi, 0xd4, 0x34, 0x31); 220 - mipi_dsi_generic_write_seq(dsi, 0xd5, 0x2d, 0x2e); 221 - mipi_dsi_generic_write_seq(dsi, 0xd6, 0x31, 0x31); 222 - mipi_dsi_generic_write_seq(dsi, 0xd7, 0x31, 0x31); 223 - mipi_dsi_generic_write_seq(dsi, 0xe5, 0x31, 0x31); 224 - mipi_dsi_generic_write_seq(dsi, 0xe6, 0x31, 0x31); 225 - mipi_dsi_generic_write_seq(dsi, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00); 226 - mipi_dsi_generic_write_seq(dsi, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00); 227 - mipi_dsi_generic_write_seq(dsi, 0xe7, 0x00); 228 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x02); 229 - mipi_dsi_generic_write_seq(dsi, 0xf7, 0x47); 230 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x0a); 231 - mipi_dsi_generic_write_seq(dsi, 0xf7, 0x02); 232 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x17); 233 - mipi_dsi_generic_write_seq(dsi, 0xf4, 0x60); 234 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x01); 235 - mipi_dsi_generic_write_seq(dsi, 0xf9, 0x46); 236 - mipi_dsi_generic_write_seq(dsi, 0x6f, 0x11); 237 - mipi_dsi_generic_write_seq(dsi, 0xf3, 0x01); 238 - mipi_dsi_generic_write_seq(dsi, 0x35, 0x00); 239 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); 240 - mipi_dsi_generic_write_seq(dsi, 0xd9, 0x02, 0x03, 0x00); 241 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x00, 0x00); 242 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); 243 - mipi_dsi_generic_write_seq(dsi, 0xb1, 0x6c, 0x21); 244 - mipi_dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x00, 0x00); 245 - mipi_dsi_generic_write_seq(dsi, 0x35, 0x00); 51 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); 52 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xff, 0xaa, 0x55, 0xa5, 0x80); 53 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x11, 0x00); 54 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf7, 0x20, 0x00); 55 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x01); 56 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 0x21); 57 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbd, 0x01, 0xa0, 0x10, 0x08, 0x01); 58 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb8, 0x01, 0x02, 0x0c, 0x02); 59 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbb, 0x11, 0x11); 60 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbc, 0x00, 0x00); 61 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb6, 0x02); 62 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x01); 63 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb0, 0x09, 0x09); 64 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 0x09, 0x09); 65 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbc, 0x8c, 0x00); 66 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbd, 0x8c, 0x00); 67 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xca, 0x00); 68 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc0, 0x04); 69 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbe, 0xb5); 70 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb3, 0x35, 0x35); 71 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb4, 0x25, 0x25); 72 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 0x43, 0x43); 73 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xba, 0x24, 0x24); 74 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x02); 75 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xee, 0x03); 76 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb0, 77 + 0x00, 0xb2, 0x00, 0xb3, 0x00, 0xb6, 0x00, 0xc3, 78 + 0x00, 0xce, 0x00, 0xe1, 0x00, 0xf3, 0x01, 0x11); 79 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 80 + 0x01, 0x2e, 0x01, 0x5c, 0x01, 0x82, 0x01, 0xc3, 81 + 0x01, 0xfe, 0x02, 0x00, 0x02, 0x37, 0x02, 0x77); 82 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb2, 83 + 0x02, 0xa1, 0x02, 0xd7, 0x02, 0xfe, 0x03, 0x2c, 84 + 0x03, 0x4b, 0x03, 0x63, 0x03, 0x8f, 0x03, 0x90); 85 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb3, 0x03, 0x96, 0x03, 0x98); 86 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb4, 87 + 0x00, 0x81, 0x00, 0x8b, 0x00, 0x9c, 0x00, 0xa9, 88 + 0x00, 0xb5, 0x00, 0xcb, 0x00, 0xdf, 0x01, 0x02); 89 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb5, 90 + 0x01, 0x1f, 0x01, 0x51, 0x01, 0x7a, 0x01, 0xbf, 91 + 0x01, 0xfa, 0x01, 0xfc, 0x02, 0x34, 0x02, 0x76); 92 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb6, 93 + 0x02, 0x9f, 0x02, 0xd7, 0x02, 0xfc, 0x03, 0x2c, 94 + 0x03, 0x4a, 0x03, 0x63, 0x03, 0x8f, 0x03, 0xa2); 95 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb7, 0x03, 0xb8, 0x03, 0xba); 96 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb8, 97 + 0x00, 0x01, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x2a, 98 + 0x00, 0x41, 0x00, 0x67, 0x00, 0x87, 0x00, 0xb9); 99 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 100 + 0x00, 0xe2, 0x01, 0x22, 0x01, 0x54, 0x01, 0xa3, 101 + 0x01, 0xe6, 0x01, 0xe7, 0x02, 0x24, 0x02, 0x67); 102 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xba, 103 + 0x02, 0x93, 0x02, 0xcd, 0x02, 0xf6, 0x03, 0x31, 104 + 0x03, 0x6c, 0x03, 0xe9, 0x03, 0xef, 0x03, 0xf4); 105 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbb, 0x03, 0xf6, 0x03, 0xf7); 106 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x03); 107 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb0, 0x22, 0x00); 108 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 0x22, 0x00); 109 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb2, 0x05, 0x00, 0x60, 0x00, 0x00); 110 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb3, 0x05, 0x00, 0x60, 0x00, 0x00); 111 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb4, 0x05, 0x00, 0x60, 0x00, 0x00); 112 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb5, 0x05, 0x00, 0x60, 0x00, 0x00); 113 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xba, 0x53, 0x00, 0x60, 0x00, 0x00); 114 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbb, 0x53, 0x00, 0x60, 0x00, 0x00); 115 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbc, 0x53, 0x00, 0x60, 0x00, 0x00); 116 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbd, 0x53, 0x00, 0x60, 0x00, 0x00); 117 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc0, 0x00, 0x34, 0x00, 0x00); 118 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc1, 0x00, 0x00, 0x34, 0x00); 119 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc2, 0x00, 0x00, 0x34, 0x00); 120 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc3, 0x00, 0x00, 0x34, 0x00); 121 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc4, 0x60); 122 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc5, 0xc0); 123 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc6, 0x00); 124 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc7, 0x00); 125 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x05); 126 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb0, 0x17, 0x06); 127 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 0x17, 0x06); 128 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb2, 0x17, 0x06); 129 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb3, 0x17, 0x06); 130 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb4, 0x17, 0x06); 131 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb5, 0x17, 0x06); 132 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb6, 0x17, 0x06); 133 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb7, 0x17, 0x06); 134 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb8, 0x00); 135 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 0x00, 0x03); 136 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xba, 0x00, 0x00); 137 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbb, 0x02, 0x03); 138 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbc, 0x02, 0x03); 139 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbd, 0x03, 0x03, 0x00, 0x03, 0x03); 140 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc0, 0x0b); 141 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc1, 0x09); 142 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc2, 0xa6); 143 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc3, 0x05); 144 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc4, 0x00); 145 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc5, 0x02); 146 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc6, 0x22); 147 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc7, 0x03); 148 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc8, 0x07, 0x20); 149 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc9, 0x03, 0x20); 150 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xca, 0x01, 0x60); 151 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcb, 0x01, 0x60); 152 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcc, 0x00, 0x00, 0x02); 153 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcd, 0x00, 0x00, 0x02); 154 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xce, 0x00, 0x00, 0x02); 155 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcf, 0x00, 0x00, 0x02); 156 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd1, 0x00, 0x05, 0x01, 0x07, 0x10); 157 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd2, 0x10, 0x05, 0x05, 0x03, 0x10); 158 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd3, 0x20, 0x00, 0x43, 0x07, 0x10); 159 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd4, 0x30, 0x00, 0x43, 0x07, 0x10); 160 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd0, 161 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); 162 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd5, 163 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 164 + 0x00, 0x00, 0x00); 165 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd6, 166 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 167 + 0x00, 0x00, 0x00); 168 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd7, 169 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 170 + 0x00, 0x00, 0x00); 171 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00); 172 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe5, 0x06); 173 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe6, 0x06); 174 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe7, 0x00); 175 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe8, 0x06); 176 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe9, 0x06); 177 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xea, 0x06); 178 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xeb, 0x00); 179 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xec, 0x00); 180 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xed, 0x30); 181 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x06); 182 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb0, 0x31, 0x31); 183 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 0x31, 0x31); 184 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb2, 0x2d, 0x2e); 185 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb3, 0x31, 0x34); 186 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb4, 0x29, 0x2a); 187 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb5, 0x12, 0x10); 188 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb6, 0x18, 0x16); 189 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb7, 0x00, 0x02); 190 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb8, 0x08, 0x31); 191 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 0x31, 0x31); 192 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xba, 0x31, 0x31); 193 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbb, 0x31, 0x08); 194 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbc, 0x03, 0x01); 195 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbd, 0x17, 0x19); 196 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbe, 0x11, 0x13); 197 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xbf, 0x2a, 0x29); 198 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc0, 0x34, 0x31); 199 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc1, 0x2e, 0x2d); 200 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc2, 0x31, 0x31); 201 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc3, 0x31, 0x31); 202 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc4, 0x31, 0x31); 203 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc5, 0x31, 0x31); 204 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc6, 0x2e, 0x2d); 205 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc7, 0x31, 0x34); 206 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc8, 0x29, 0x2a); 207 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xc9, 0x17, 0x19); 208 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xca, 0x11, 0x13); 209 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcb, 0x03, 0x01); 210 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcc, 0x08, 0x31); 211 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcd, 0x31, 0x31); 212 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xce, 0x31, 0x31); 213 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xcf, 0x31, 0x08); 214 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd0, 0x00, 0x02); 215 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd1, 0x12, 0x10); 216 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd2, 0x18, 0x16); 217 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd3, 0x2a, 0x29); 218 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd4, 0x34, 0x31); 219 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd5, 0x2d, 0x2e); 220 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd6, 0x31, 0x31); 221 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd7, 0x31, 0x31); 222 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe5, 0x31, 0x31); 223 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe6, 0x31, 0x31); 224 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00); 225 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00); 226 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xe7, 0x00); 227 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x02); 228 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf7, 0x47); 229 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x0a); 230 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf7, 0x02); 231 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x17); 232 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf4, 0x60); 233 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x01); 234 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf9, 0x46); 235 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x6f, 0x11); 236 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf3, 0x01); 237 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x35, 0x00); 238 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); 239 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xd9, 0x02, 0x03, 0x00); 240 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x00, 0x00); 241 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); 242 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb1, 0x6c, 0x21); 243 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x55, 0xaa, 0x52, 0x00, 0x00); 244 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x35, 0x00); 246 245 247 - ret = mipi_dsi_dcs_exit_sleep_mode(dsi); 248 - if (ret < 0) { 249 - dev_err(dev, "Failed to exit sleep mode: %d\n", ret); 250 - return ret; 251 - } 252 - msleep(120); 246 + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); 247 + mipi_dsi_msleep(&dsi_ctx, 120); 248 + mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); 253 249 254 - ret = mipi_dsi_dcs_set_display_on(dsi); 255 - if (ret < 0) { 256 - dev_err(dev, "Failed to set display on: %d\n", ret); 257 - return ret; 258 - } 259 250 usleep_range(1000, 2000); 260 251 261 - mipi_dsi_generic_write_seq(dsi, 0x53, 0x24); 252 + mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0x53, 0x24); 262 253 263 - return 0; 254 + return dsi_ctx.accum_err; 264 255 } 265 256 266 257 static int truly_nt35521_off(struct truly_nt35521 *ctx) 267 258 { 268 259 struct mipi_dsi_device *dsi = ctx->dsi; 269 - struct device *dev = &dsi->dev; 270 - int ret; 260 + struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi }; 271 261 272 262 dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; 273 263 274 - ret = mipi_dsi_dcs_set_display_off(dsi); 275 - if (ret < 0) { 276 - dev_err(dev, "Failed to set display off: %d\n", ret); 277 - return ret; 278 - } 279 - msleep(50); 264 + mipi_dsi_dcs_set_display_off_multi(&dsi_ctx); 265 + mipi_dsi_msleep(&dsi_ctx, 50); 266 + mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx); 267 + mipi_dsi_msleep(&dsi_ctx, 150); 280 268 281 - ret = mipi_dsi_dcs_enter_sleep_mode(dsi); 282 - if (ret < 0) { 283 - dev_err(dev, "Failed to enter sleep mode: %d\n", ret); 284 - return ret; 285 - } 286 - msleep(150); 287 - 288 - return 0; 269 + return dsi_ctx.accum_err; 289 270 } 290 271 291 272 static int truly_nt35521_prepare(struct drm_panel *panel)