hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/staging/rts5208/spi.c
....@@ -1,19 +1,8 @@
1
-/* Driver for Realtek PCI-Express card reader
1
+// SPDX-License-Identifier: GPL-2.0+
2
+/*
3
+ * Driver for Realtek PCI-Express card reader
24 *
35 * Copyright(c) 2009-2013 Realtek Semiconductor Corp. All rights reserved.
4
- *
5
- * This program is free software; you can redistribute it and/or modify it
6
- * under the terms of the GNU General Public License as published by the
7
- * Free Software Foundation; either version 2, or (at your option) any
8
- * later version.
9
- *
10
- * This program is distributed in the hope that it will be useful, but
11
- * WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- * General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License along
16
- * with this program; if not, see <http://www.gnu.org/licenses/>.
176 *
187 * Author:
198 * Wei WANG (wei_wang@realsil.com.cn)
....@@ -41,14 +30,12 @@
4130 retval = rtsx_write_register(chip, SPI_CONTROL, 0xFF,
4231 CS_POLARITY_LOW | DTO_MSB_FIRST
4332 | SPI_MASTER | SPI_MODE0 | SPI_AUTO);
44
- if (retval) {
33
+ if (retval)
4534 return retval;
46
- }
4735 retval = rtsx_write_register(chip, SPI_TCTL, EDO_TIMING_MASK,
4836 SAMPLE_DELAY_HALF);
49
- if (retval) {
37
+ if (retval)
5038 return retval;
51
- }
5239
5340 return STATUS_SUCCESS;
5441 }
....@@ -60,42 +47,35 @@
6047
6148 retval = rtsx_write_register(chip, SPI_CLK_DIVIDER1, 0xFF,
6249 (u8)(spi->clk_div >> 8));
63
- if (retval) {
50
+ if (retval)
6451 return retval;
65
- }
6652 retval = rtsx_write_register(chip, SPI_CLK_DIVIDER0, 0xFF,
6753 (u8)(spi->clk_div));
68
- if (retval) {
54
+ if (retval)
6955 return retval;
70
- }
7156
7257 retval = switch_clock(chip, spi->spi_clock);
73
- if (retval != STATUS_SUCCESS) {
58
+ if (retval != STATUS_SUCCESS)
7459 return STATUS_FAIL;
75
- }
7660
7761 retval = select_card(chip, SPI_CARD);
78
- if (retval != STATUS_SUCCESS) {
62
+ if (retval != STATUS_SUCCESS)
7963 return STATUS_FAIL;
80
- }
8164
8265 retval = rtsx_write_register(chip, CARD_CLK_EN, SPI_CLK_EN,
8366 SPI_CLK_EN);
84
- if (retval) {
67
+ if (retval)
8568 return retval;
86
- }
8769 retval = rtsx_write_register(chip, CARD_OE, SPI_OUTPUT_EN,
8870 SPI_OUTPUT_EN);
89
- if (retval) {
71
+ if (retval)
9072 return retval;
91
- }
9273
9374 wait_timeout(10);
9475
9576 retval = spi_init(chip);
96
- if (retval != STATUS_SUCCESS) {
77
+ if (retval != STATUS_SUCCESS)
9778 return STATUS_FAIL;
98
- }
9979
10080 return STATUS_SUCCESS;
10181 }
....@@ -247,47 +227,39 @@
247227 clk = CLK_30;
248228
249229 retval = rtsx_write_register(chip, SPI_CLK_DIVIDER1, 0xFF, 0x00);
250
- if (retval) {
230
+ if (retval)
251231 return retval;
252
- }
253232 retval = rtsx_write_register(chip, SPI_CLK_DIVIDER0, 0xFF, 0x27);
254
- if (retval) {
233
+ if (retval)
255234 return retval;
256
- }
257235
258236 retval = switch_clock(chip, clk);
259
- if (retval != STATUS_SUCCESS) {
237
+ if (retval != STATUS_SUCCESS)
260238 return STATUS_FAIL;
261
- }
262239
263240 retval = select_card(chip, SPI_CARD);
264
- if (retval != STATUS_SUCCESS) {
241
+ if (retval != STATUS_SUCCESS)
265242 return STATUS_FAIL;
266
- }
267243
268244 retval = rtsx_write_register(chip, CARD_CLK_EN, SPI_CLK_EN,
269245 SPI_CLK_EN);
270
- if (retval) {
246
+ if (retval)
271247 return retval;
272
- }
273248 retval = rtsx_write_register(chip, CARD_OE, SPI_OUTPUT_EN,
274249 SPI_OUTPUT_EN);
275
- if (retval) {
250
+ if (retval)
276251 return retval;
277
- }
278252
279253 wait_timeout(10);
280254
281255 retval = rtsx_write_register(chip, SPI_CONTROL, 0xFF,
282256 CS_POLARITY_HIGH | SPI_EEPROM_AUTO);
283
- if (retval) {
257
+ if (retval)
284258 return retval;
285
- }
286259 retval = rtsx_write_register(chip, SPI_TCTL, EDO_TIMING_MASK,
287260 SAMPLE_DELAY_HALF);
288
- if (retval) {
261
+ if (retval)
289262 return retval;
290
- }
291263
292264 return STATUS_SUCCESS;
293265 }
....@@ -306,9 +278,8 @@
306278 SPI_TRANSFER0_END);
307279
308280 retval = rtsx_send_cmd(chip, 0, 100);
309
- if (retval < 0) {
281
+ if (retval < 0)
310282 return STATUS_FAIL;
311
- }
312283
313284 return STATUS_SUCCESS;
314285 }
....@@ -318,14 +289,12 @@
318289 int retval;
319290
320291 retval = spi_init_eeprom(chip);
321
- if (retval != STATUS_SUCCESS) {
292
+ if (retval != STATUS_SUCCESS)
322293 return STATUS_FAIL;
323
- }
324294
325295 retval = spi_eeprom_program_enable(chip);
326
- if (retval != STATUS_SUCCESS) {
296
+ if (retval != STATUS_SUCCESS)
327297 return STATUS_FAIL;
328
- }
329298
330299 rtsx_init_cmd(chip);
331300
....@@ -339,14 +308,12 @@
339308 SPI_TRANSFER0_END);
340309
341310 retval = rtsx_send_cmd(chip, 0, 100);
342
- if (retval < 0) {
311
+ if (retval < 0)
343312 return STATUS_FAIL;
344
- }
345313
346314 retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
347
- if (retval) {
315
+ if (retval)
348316 return retval;
349
- }
350317
351318 return STATUS_SUCCESS;
352319 }
....@@ -356,14 +323,12 @@
356323 int retval;
357324
358325 retval = spi_init_eeprom(chip);
359
- if (retval != STATUS_SUCCESS) {
326
+ if (retval != STATUS_SUCCESS)
360327 return STATUS_FAIL;
361
- }
362328
363329 retval = spi_eeprom_program_enable(chip);
364
- if (retval != STATUS_SUCCESS) {
330
+ if (retval != STATUS_SUCCESS)
365331 return STATUS_FAIL;
366
- }
367332
368333 rtsx_init_cmd(chip);
369334
....@@ -379,14 +344,12 @@
379344 SPI_TRANSFER0_END);
380345
381346 retval = rtsx_send_cmd(chip, 0, 100);
382
- if (retval < 0) {
347
+ if (retval < 0)
383348 return STATUS_FAIL;
384
- }
385349
386350 retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
387
- if (retval) {
351
+ if (retval)
388352 return retval;
389
- }
390353
391354 return STATUS_SUCCESS;
392355 }
....@@ -397,9 +360,8 @@
397360 u8 data;
398361
399362 retval = spi_init_eeprom(chip);
400
- if (retval != STATUS_SUCCESS) {
363
+ if (retval != STATUS_SUCCESS)
401364 return STATUS_FAIL;
402
- }
403365
404366 rtsx_init_cmd(chip);
405367
....@@ -416,23 +378,20 @@
416378 SPI_TRANSFER0_END);
417379
418380 retval = rtsx_send_cmd(chip, 0, 100);
419
- if (retval < 0) {
381
+ if (retval < 0)
420382 return STATUS_FAIL;
421
- }
422383
423384 wait_timeout(5);
424385 retval = rtsx_read_register(chip, SPI_DATA, &data);
425
- if (retval) {
386
+ if (retval)
426387 return retval;
427
- }
428388
429389 if (val)
430390 *val = data;
431391
432392 retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
433
- if (retval) {
393
+ if (retval)
434394 return retval;
435
- }
436395
437396 return STATUS_SUCCESS;
438397 }
....@@ -442,14 +401,12 @@
442401 int retval;
443402
444403 retval = spi_init_eeprom(chip);
445
- if (retval != STATUS_SUCCESS) {
404
+ if (retval != STATUS_SUCCESS)
446405 return STATUS_FAIL;
447
- }
448406
449407 retval = spi_eeprom_program_enable(chip);
450
- if (retval != STATUS_SUCCESS) {
408
+ if (retval != STATUS_SUCCESS)
451409 return STATUS_FAIL;
452
- }
453410
454411 rtsx_init_cmd(chip);
455412
....@@ -466,14 +423,12 @@
466423 SPI_TRANSFER0_END);
467424
468425 retval = rtsx_send_cmd(chip, 0, 100);
469
- if (retval < 0) {
426
+ if (retval < 0)
470427 return STATUS_FAIL;
471
- }
472428
473429 retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
474
- if (retval) {
430
+ if (retval)
475431 return retval;
476
- }
477432
478433 return STATUS_SUCCESS;
479434 }
....@@ -577,9 +532,8 @@
577532
578533 if (len) {
579534 buf = kmalloc(len, GFP_KERNEL);
580
- if (!buf) {
535
+ if (!buf)
581536 return STATUS_ERROR;
582
- }
583537
584538 retval = rtsx_read_ppbuf(chip, buf, len);
585539 if (retval != STATUS_SUCCESS) {
....@@ -621,9 +575,8 @@
621575 }
622576
623577 buf = kmalloc(SF_PAGE_LEN, GFP_KERNEL);
624
- if (!buf) {
578
+ if (!buf)
625579 return STATUS_ERROR;
626
- }
627580
628581 while (len) {
629582 u16 pagelen = SF_PAGE_LEN - (u8)addr;
....@@ -716,9 +669,8 @@
716669
717670 if (program_mode == BYTE_PROGRAM) {
718671 buf = kmalloc(4, GFP_KERNEL);
719
- if (!buf) {
672
+ if (!buf)
720673 return STATUS_ERROR;
721
- }
722674
723675 while (len) {
724676 retval = sf_enable_write(chip, SPI_WREN);
....@@ -762,14 +714,12 @@
762714 int first_byte = 1;
763715
764716 retval = sf_enable_write(chip, SPI_WREN);
765
- if (retval != STATUS_SUCCESS) {
717
+ if (retval != STATUS_SUCCESS)
766718 return STATUS_FAIL;
767
- }
768719
769720 buf = kmalloc(4, GFP_KERNEL);
770
- if (!buf) {
721
+ if (!buf)
771722 return STATUS_ERROR;
772
- }
773723
774724 while (len) {
775725 rtsx_stor_access_xfer_buf(buf, 1, srb, &index, &offset,
....@@ -808,19 +758,16 @@
808758 kfree(buf);
809759
810760 retval = sf_disable_write(chip, SPI_WRDI);
811
- if (retval != STATUS_SUCCESS) {
761
+ if (retval != STATUS_SUCCESS)
812762 return STATUS_FAIL;
813
- }
814763
815764 retval = sf_polling_status(chip, 100);
816
- if (retval != STATUS_SUCCESS) {
765
+ if (retval != STATUS_SUCCESS)
817766 return STATUS_FAIL;
818
- }
819767 } else if (program_mode == PAGE_PROGRAM) {
820768 buf = kmalloc(SF_PAGE_LEN, GFP_KERNEL);
821
- if (!buf) {
769
+ if (!buf)
822770 return STATUS_NOMEM;
823
- }
824771
825772 while (len) {
826773 u16 pagelen = SF_PAGE_LEN - (u8)addr;
....@@ -893,24 +840,20 @@
893840
894841 if (erase_mode == PAGE_ERASE) {
895842 retval = sf_enable_write(chip, SPI_WREN);
896
- if (retval != STATUS_SUCCESS) {
843
+ if (retval != STATUS_SUCCESS)
897844 return STATUS_FAIL;
898
- }
899845
900846 retval = sf_erase(chip, ins, 1, addr);
901
- if (retval != STATUS_SUCCESS) {
847
+ if (retval != STATUS_SUCCESS)
902848 return STATUS_FAIL;
903
- }
904849 } else if (erase_mode == CHIP_ERASE) {
905850 retval = sf_enable_write(chip, SPI_WREN);
906
- if (retval != STATUS_SUCCESS) {
851
+ if (retval != STATUS_SUCCESS)
907852 return STATUS_FAIL;
908
- }
909853
910854 retval = sf_erase(chip, ins, 0, 0);
911
- if (retval != STATUS_SUCCESS) {
855
+ if (retval != STATUS_SUCCESS)
912856 return STATUS_FAIL;
913
- }
914857 } else {
915858 spi_set_err_code(chip, SPI_INVALID_COMMAND);
916859 return STATUS_FAIL;
....@@ -935,9 +878,8 @@
935878 }
936879
937880 retval = sf_enable_write(chip, ewsr);
938
- if (retval != STATUS_SUCCESS) {
881
+ if (retval != STATUS_SUCCESS)
939882 return STATUS_FAIL;
940
- }
941883
942884 rtsx_init_cmd(chip);
943885