diff options
author | Hans de Goede <hdegoede@redhat.com> | 2012-09-19 10:24:11 +0000 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2012-09-19 10:24:11 +0000 |
commit | 14db1e171a4a730a62abead6e631d6aab1c8b091 (patch) | |
tree | d7f47853c543ba7ace17d3e27327a954daf9c178 | |
parent | ba42e0394b6ee232ea3e8414a219437ecc377948 (diff) | |
download | libgphoto2-14db1e171a4a730a62abead6e631d6aab1c8b091.tar.gz |
ax203: ax203_send_eeprom_cmd() add extra_arg
git-svn-id: https://svn.code.sf.net/p/gphoto/code/branches/libgphoto2-2_4/libgphoto2@14106 67ed7778-7388-44ab-90cf-0a291f65f57c
-rw-r--r-- | camlibs/ax203/ax203.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/camlibs/ax203/ax203.c b/camlibs/ax203/ax203.c index c3721b9b8..9317fd4cd 100644 --- a/camlibs/ax203/ax203.c +++ b/camlibs/ax203/ax203.c @@ -123,7 +123,7 @@ ax203_send_cmd(Camera *camera, int to_dev, char *cmd, int cmd_size, static int ax203_send_eeprom_cmd(Camera *camera, int to_dev, char *eeprom_cmd, int eeprom_cmd_size, - char *data, int data_size) + char *data, int data_size, char extra_arg) { char cmd_buffer[16]; int i; @@ -143,6 +143,8 @@ ax203_send_eeprom_cmd(Camera *camera, int to_dev, for (i = 0; i < eeprom_cmd_size; i++) cmd_buffer[10 + i] = eeprom_cmd[i]; + cmd_buffer[15] = extra_arg; + return ax203_send_cmd (camera, to_dev, cmd_buffer, sizeof(cmd_buffer), data, data_size); } @@ -273,7 +275,7 @@ ax203_eeprom_device_identification(Camera *camera, char *buf) { char cmd = SPI_EEPROM_RDID; - return ax203_send_eeprom_cmd (camera, 0, &cmd, 1, buf, 4); + return ax203_send_eeprom_cmd (camera, 0, &cmd, 1, buf, 4, 0); } static int @@ -281,7 +283,7 @@ ax203_eeprom_release_from_deep_powerdown(Camera *camera) { char cmd = SPI_EEPROM_RDP; - return ax203_send_eeprom_cmd (camera, 1, &cmd, 1, NULL, 0); + return ax203_send_eeprom_cmd (camera, 1, &cmd, 1, NULL, 0, 0); } static int @@ -295,11 +297,12 @@ ax203_eeprom_read(Camera *camera, int address, char *buf, int buf_size) cmd[3] = (address) & 0xff; return ax203_send_eeprom_cmd (camera, 0, cmd, sizeof(cmd), buf, - buf_size); + buf_size, 0); } static int -ax203_eeprom_program_page(Camera *camera, int address, char *buf, int buf_size) +ax203_eeprom_program_page(Camera *camera, int address, char *buf, int buf_size, + char extra_arg) { char cmd[4]; @@ -309,7 +312,7 @@ ax203_eeprom_program_page(Camera *camera, int address, char *buf, int buf_size) cmd[3] = (address) & 0xff; return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), buf, - buf_size); + buf_size, extra_arg); } static int @@ -317,7 +320,7 @@ ax203_eeprom_write_enable(Camera *camera) { char cmd = SPI_EEPROM_WREN; - return ax203_send_eeprom_cmd (camera, 1, &cmd, 1, NULL, 0); + return ax203_send_eeprom_cmd (camera, 1, &cmd, 1, NULL, 0, 0); } static int @@ -328,7 +331,7 @@ ax203_eeprom_clear_block_protection(Camera *camera) cmd[0] = SPI_EEPROM_WRSR; cmd[1] = 0; - return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), NULL, 0); + return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), NULL, 0, 0); } static int @@ -341,7 +344,7 @@ ax203_eeprom_erase_4k_sector(Camera *camera, int address) cmd[2] = (address >> 8) & 0xff; cmd[3] = (address) & 0xff; - return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), NULL, 0); + return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), NULL, 0, 0); } static int @@ -354,7 +357,7 @@ ax203_eeprom_erase_64k_sector(Camera *camera, int address) cmd[2] = (address >> 8) & 0xff; cmd[3] = (address) & 0xff; - return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), NULL, 0); + return ax203_send_eeprom_cmd (camera, 1, cmd, sizeof(cmd), NULL, 0, 0); } static int @@ -380,7 +383,8 @@ ax203_eeprom_wait_ready(Camera *camera) } while (1) { - CHECK (ax203_send_eeprom_cmd (camera, 0, &cmd, 1, buf, count)) + CHECK (ax203_send_eeprom_cmd (camera, 0, &cmd, 1, + buf, count, 0)) /* We only need to check the last read */ if (!(buf[count - 1] & 0x01)) /* Check write in progress bit */ break; /* No write in progress, done waiting */ @@ -445,7 +449,7 @@ ax203_write_sector(Camera *camera, int sector, char *buf) for (i = 0; i < SPI_EEPROM_SECTOR_SIZE; i += 256) { CHECK (ax203_eeprom_write_enable (camera)) CHECK (ax203_eeprom_program_page (camera, base + i, - buf + i, 256)) + buf + i, 256, 0)) CHECK (ax203_eeprom_wait_ready (camera)) } } @@ -1599,7 +1603,7 @@ ax203_commit_block_ax3003(Camera *camera, int bss) CHECK (ax203_eeprom_write_enable (camera)) CHECK (ax203_eeprom_program_page (camera, address, camera->pl->mem + address, - SPI_EEPROM_BLOCK_SIZE)) + SPI_EEPROM_BLOCK_SIZE, 0)) CHECK (ax203_eeprom_wait_ready (camera)) for (i = 0; i < block_sector_size; i++) |