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.

mtd: spinand: macronix: Register vendor specific operation

Provide the Macronix specific "read ECC status register" operation so
that the core can verify if it is supported by the controller before
using it.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>

+23
+23
drivers/mtd/nand/spi/macronix.c
··· 47 47 SPI_MEM_OP_DUMMY(1, 1), \ 48 48 SPI_MEM_OP_DATA_IN(1, buf, 1)) 49 49 50 + static SPINAND_OP_VARIANTS(macronix_ops, 51 + SPINAND_MACRONIX_READ_ECCSR_1S_0_1S(NULL)); 52 + 50 53 static struct spi_mem_op 51 54 spinand_fill_macronix_read_eccsr_op(struct spinand_device *spinand, void *valptr) 52 55 { ··· 177 174 &write_cache_variants, 178 175 &update_cache_variants), 179 176 SPINAND_HAS_QE_BIT, 177 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 180 178 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 181 179 macronix_ecc_get_status)), 182 180 SPINAND_INFO("MX35LF2GE4AB", ··· 199 195 &write_cache_variants, 200 196 &update_cache_variants), 201 197 SPINAND_HAS_QE_BIT, 198 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 202 199 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 203 200 macronix_ecc_get_status), 204 201 SPINAND_CONT_READ(macronix_set_cont_read), ··· 213 208 &write_cache_variants, 214 209 &update_cache_variants), 215 210 SPINAND_HAS_QE_BIT, 211 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 216 212 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 217 213 macronix_ecc_get_status), 218 214 SPINAND_CONT_READ(macronix_set_cont_read), ··· 284 278 &write_cache_variants, 285 279 &update_cache_variants), 286 280 SPINAND_HAS_QE_BIT, 281 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 287 282 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 288 283 macronix_ecc_get_status)), 289 284 SPINAND_INFO("MX31UF1GE4BC", ··· 295 288 &write_cache_variants, 296 289 &update_cache_variants), 297 290 SPINAND_HAS_QE_BIT, 291 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 298 292 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 299 293 macronix_ecc_get_status)), 300 294 ··· 309 301 SPINAND_HAS_QE_BIT | 310 302 SPINAND_HAS_PROG_PLANE_SELECT_BIT | 311 303 SPINAND_HAS_READ_PLANE_SELECT_BIT, 304 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 312 305 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 313 306 macronix_ecc_get_status)), 314 307 SPINAND_INFO("MX35UF4G24AD", ··· 321 312 &update_cache_variants), 322 313 SPINAND_HAS_QE_BIT | 323 314 SPINAND_HAS_PROG_PLANE_SELECT_BIT, 315 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 324 316 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 325 317 macronix_ecc_get_status), 326 318 SPINAND_READ_RETRY(MACRONIX_NUM_READ_RETRY_MODES, ··· 334 324 &write_cache_variants, 335 325 &update_cache_variants), 336 326 SPINAND_HAS_QE_BIT, 327 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 337 328 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 338 329 macronix_ecc_get_status), 339 330 SPINAND_READ_RETRY(MACRONIX_NUM_READ_RETRY_MODES, ··· 347 336 &write_cache_variants, 348 337 &update_cache_variants), 349 338 SPINAND_HAS_QE_BIT, 339 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 350 340 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 351 341 macronix_ecc_get_status), 352 342 SPINAND_CONT_READ(macronix_set_cont_read), ··· 363 351 SPINAND_HAS_QE_BIT | 364 352 SPINAND_HAS_PROG_PLANE_SELECT_BIT | 365 353 SPINAND_HAS_READ_PLANE_SELECT_BIT, 354 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 366 355 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 367 356 macronix_ecc_get_status)), 368 357 SPINAND_INFO("MX35UF2G24AD", ··· 375 362 &update_cache_variants), 376 363 SPINAND_HAS_QE_BIT | 377 364 SPINAND_HAS_PROG_PLANE_SELECT_BIT, 365 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 378 366 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 379 367 macronix_ecc_get_status), 380 368 SPINAND_READ_RETRY(MACRONIX_NUM_READ_RETRY_MODES, ··· 388 374 &write_cache_variants, 389 375 &update_cache_variants), 390 376 SPINAND_HAS_QE_BIT, 377 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 391 378 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 392 379 macronix_ecc_get_status), 393 380 SPINAND_READ_RETRY(MACRONIX_NUM_READ_RETRY_MODES, ··· 401 386 &write_cache_variants, 402 387 &update_cache_variants), 403 388 SPINAND_HAS_QE_BIT, 389 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 404 390 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 405 391 macronix_ecc_get_status), 406 392 SPINAND_CONT_READ(macronix_set_cont_read), ··· 415 399 &write_cache_variants, 416 400 &update_cache_variants), 417 401 SPINAND_HAS_QE_BIT, 402 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 418 403 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 419 404 macronix_ecc_get_status), 420 405 SPINAND_CONT_READ(macronix_set_cont_read)), ··· 427 410 &write_cache_variants, 428 411 &update_cache_variants), 429 412 SPINAND_HAS_QE_BIT, 413 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 430 414 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 431 415 macronix_ecc_get_status)), 432 416 SPINAND_INFO("MX35UF1G24AD", ··· 438 420 &write_cache_variants, 439 421 &update_cache_variants), 440 422 SPINAND_HAS_QE_BIT, 423 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 441 424 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 442 425 macronix_ecc_get_status), 443 426 SPINAND_READ_RETRY(MACRONIX_NUM_READ_RETRY_MODES, ··· 451 432 &write_cache_variants, 452 433 &update_cache_variants), 453 434 SPINAND_HAS_QE_BIT, 435 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 454 436 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 455 437 macronix_ecc_get_status), 456 438 SPINAND_CONT_READ(macronix_set_cont_read), ··· 465 445 &write_cache_variants, 466 446 &update_cache_variants), 467 447 SPINAND_HAS_QE_BIT, 448 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 468 449 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 469 450 macronix_ecc_get_status), 470 451 SPINAND_CONT_READ(macronix_set_cont_read)), ··· 477 456 &write_cache_variants, 478 457 &update_cache_variants), 479 458 SPINAND_HAS_QE_BIT, 459 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 480 460 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 481 461 macronix_ecc_get_status)), 482 462 SPINAND_INFO("MX3UF2GE4BC", ··· 488 466 &write_cache_variants, 489 467 &update_cache_variants), 490 468 SPINAND_HAS_QE_BIT, 469 + SPINAND_INFO_VENDOR_OPS(&macronix_ops), 491 470 SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, 492 471 macronix_ecc_get_status)), 493 472 };