genesys: Simplify get_gain4_bit() implementation

merge-requests/228/merge
Povilas Kanapickas 2019-11-30 19:06:43 +02:00
rodzic 3ada79c35a
commit 7385e0d305
20 zmienionych plików z 35 dodań i 50 usunięć

Wyświetl plik

@ -76,8 +76,6 @@ public:
Genesys_Register_Set& regs) const = 0;
virtual void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const = 0;
virtual bool get_gain4_bit(Genesys_Register_Set * reg) const = 0;
virtual bool test_buffer_empty_bit(std::uint8_t val) const = 0;
virtual void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, std::uint8_t set) const = 0;

Wyświetl plik

@ -2094,7 +2094,7 @@ static void genesys_send_shading_coefficient(Genesys_Device* dev, const Genesys_
Wn = white average for column n
Dn = dark average for column n
*/
if (dev->cmd_set->get_gain4_bit(&dev->calib_reg)) {
if (get_registers_gain4_bit(dev->model->asic_type, dev->calib_reg)) {
coeff = 0x4000;
} else {
coeff = 0x2000;

Wyświetl plik

@ -53,11 +53,6 @@
namespace genesys {
namespace gl124 {
bool CommandSetGl124::get_gain4_bit(Genesys_Register_Set* regs) const
{
return static_cast<bool>(regs->get8(REG_0x06) & REG_0x06_GAIN4);
}
bool CommandSetGl124::test_buffer_empty_bit(SANE_Byte val) const
{
return (val & BUFEMPTY);

Wyświetl plik

@ -137,8 +137,6 @@ public:
void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override;
bool get_gain4_bit(Genesys_Register_Set * reg) const override;
bool test_buffer_empty_bit(std::uint8_t val) const override;
void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set) const override;

Wyświetl plik

@ -90,12 +90,6 @@ static void gl646_gpio_output_enable(IUsbDevice& usb_dev, uint8_t value)
usb_dev.control_msg(REQUEST_TYPE_OUT, REQUEST_REGISTER, GPIO_OUTPUT_ENABLE, INDEX, 1, &value);
}
bool CommandSetGl646::get_gain4_bit(Genesys_Register_Set* regs) const
{
GenesysRegister *r = sanei_genesys_get_address(regs, 0x06);
return (r && (r->value & REG_0x06_GAIN4));
}
bool CommandSetGl646::test_buffer_empty_bit(SANE_Byte val) const
{
return (val & REG_0x41_BUFEMPTY);

Wyświetl plik

@ -254,8 +254,6 @@ public:
void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override;
bool get_gain4_bit(Genesys_Register_Set * reg) const override;
bool test_buffer_empty_bit(std::uint8_t val) const override;
void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set) const override;

Wyświetl plik

@ -98,6 +98,7 @@ static constexpr RegMask REG_0x05_GMMENB = 0x08;
static constexpr RegMask REG_0x05_LEDADD = 0x04;
static constexpr RegMask REG_0x05_BASESEL = 0x03;
static constexpr RegAddr REG_0x06 = 0x06;
static constexpr RegMask REG_0x06_PWRBIT = 0x10;
static constexpr RegMask REG_0x06_GAIN4 = 0x08;
static constexpr RegMask REG_0x06_OPTEST = 0x07;

Wyświetl plik

@ -68,12 +68,6 @@ static int gl841_exposure_time(Genesys_Device *dev, const Genesys_Sensor& sensor
int start,
int used_pixels);
bool CommandSetGl841::get_gain4_bit(Genesys_Register_Set* regs) const
{
GenesysRegister *r = sanei_genesys_get_address(regs, 0x06);
return (r && (r->value & REG_0x06_GAIN4));
}
bool CommandSetGl841::test_buffer_empty_bit(SANE_Byte val) const
{
return (val & REG_0x41_BUFEMPTY);

Wyświetl plik

@ -71,8 +71,6 @@ public:
void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override;
bool get_gain4_bit(Genesys_Register_Set* reg) const override;
bool test_buffer_empty_bit(std::uint8_t val) const override;
void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set) const override;

Wyświetl plik

@ -95,6 +95,7 @@ static constexpr RegMask REG_0x05_MTLLAMP = 0x30;
static constexpr RegMask REG_0x05_GMMENB = 0x08;
static constexpr RegMask REG_0x05_MTLBASE = 0x03;
static constexpr RegAddr REG_0x06 = 0x06;
static constexpr RegMask REG_0x06_SCANMOD = 0xe0;
static constexpr RegShift REG_0x06S_SCANMOD = 5;
static constexpr RegMask REG_0x06_PWRBIT = 0x10;

Wyświetl plik

@ -63,12 +63,6 @@ static void gl843_set_buffer_address(Genesys_Device* dev, uint32_t addr)
dev->interface->write_register(0x5c, (addr & 0xff));
}
bool CommandSetGl843::get_gain4_bit(Genesys_Register_Set* regs) const
{
GenesysRegister *r = sanei_genesys_get_address(regs, REG_0x06);
return (r && (r->value & REG_0x06_GAIN4));
}
/**
* compute the step multiplier used
*/

Wyświetl plik

@ -71,8 +71,6 @@ public:
void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override;
bool get_gain4_bit(Genesys_Register_Set * reg) const override;
bool test_buffer_empty_bit(std::uint8_t val) const override;
void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set) const override;

Wyświetl plik

@ -58,12 +58,6 @@
namespace genesys {
namespace gl846 {
bool CommandSetGl846::get_gain4_bit(Genesys_Register_Set* regs) const
{
GenesysRegister *r = sanei_genesys_get_address(regs, 0x06);
return (r && (r->value & REG_0x06_GAIN4));
}
bool CommandSetGl846::test_buffer_empty_bit(SANE_Byte val) const
{
return (val & REG_0x41_BUFEMPTY);

Wyświetl plik

@ -156,8 +156,6 @@ public:
void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override;
bool get_gain4_bit(Genesys_Register_Set * reg) const override;
bool test_buffer_empty_bit(std::uint8_t val) const override;
void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set) const override;

Wyświetl plik

@ -99,6 +99,7 @@ static constexpr RegMask REG_0x05_MTLLAMP = 0x30;
static constexpr RegMask REG_0x05_GMMENB = 0x08;
static constexpr RegMask REG_0x05_MTLBASE = 0x03;
static constexpr RegAddr REG_0x06 = 0x06;
static constexpr RegMask REG_0x06_SCANMOD = 0xe0;
static constexpr RegShift REG_0x06S_SCANMOD = 5;
static constexpr RegMask REG_0x06_PWRBIT = 0x10;

Wyświetl plik

@ -53,12 +53,6 @@
namespace genesys {
namespace gl847 {
bool CommandSetGl847::get_gain4_bit(Genesys_Register_Set* regs) const
{
GenesysRegister *r = sanei_genesys_get_address(regs, 0x06);
return (r && (r->value & REG_0x06_GAIN4));
}
bool CommandSetGl847::test_buffer_empty_bit(SANE_Byte val) const
{
return (val & REG_0x41_BUFEMPTY);

Wyświetl plik

@ -140,8 +140,6 @@ public:
void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override;
bool get_gain4_bit(Genesys_Register_Set * reg) const override;
bool test_buffer_empty_bit(std::uint8_t val) const override;
void set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t set) const override;

Wyświetl plik

@ -98,6 +98,7 @@ static constexpr RegMask REG_0x05_MTLLAMP = 0x30;
static constexpr RegMask REG_0x05_GMMENB = 0x08;
static constexpr RegMask REG_0x05_MTLBASE = 0x03;
static constexpr RegAddr REG_0x06 = 0x06;
static constexpr RegMask REG_0x06_SCANMOD = 0xe0;
static constexpr RegMask REG_0x06S_SCANMOD = 5;
static constexpr RegMask REG_0x06_PWRBIT = 0x10;

Wyświetl plik

@ -48,6 +48,13 @@
#include "assert.h"
#include "test_settings.h"
#include "gl124_registers.h"
#include "gl841_registers.h"
#include "gl843_registers.h"
#include "gl846_registers.h"
#include "gl847_registers.h"
#include "gl646_registers.h"
#include <cstdio>
#include <cmath>
#include <vector>
@ -1600,6 +1607,27 @@ void sanei_genesys_set_dpihw(Genesys_Register_Set& regs, const Genesys_Sensor& s
regs.set8_mask(0x05, dpihw_setting, REG_0x05_DPIHW_MASK);
}
bool get_registers_gain4_bit(AsicType asic_type, const Genesys_Register_Set& regs)
{
switch (asic_type) {
case AsicType::GL646:
return static_cast<bool>(regs.get8(gl646::REG_0x06) & gl646::REG_0x06_GAIN4);
case AsicType::GL841:
return static_cast<bool>(regs.get8(gl841::REG_0x06) & gl841::REG_0x06_GAIN4);
case AsicType::GL843:
return static_cast<bool>(regs.get8(gl843::REG_0x06) & gl843::REG_0x06_GAIN4);
case AsicType::GL845:
case AsicType::GL846:
return static_cast<bool>(regs.get8(gl846::REG_0x06) & gl846::REG_0x06_GAIN4);
case AsicType::GL847:
return static_cast<bool>(regs.get8(gl847::REG_0x06) & gl847::REG_0x06_GAIN4);
case AsicType::GL124:
return static_cast<bool>(regs.get8(gl124::REG_0x06) & gl124::REG_0x06_GAIN4);
default:
throw SaneException("Unsupported chipset");
}
}
/**
* Wait for the scanning head to park
*/

Wyświetl plik

@ -402,6 +402,8 @@ inline SensorExposure sanei_genesys_fixup_exposure(SensorExposure exposure)
return exposure;
}
bool get_registers_gain4_bit(AsicType asic_type, const Genesys_Register_Set& regs);
extern void sanei_genesys_wait_for_home(Genesys_Device* dev);
extern void sanei_genesys_asic_init(Genesys_Device* dev, bool cold);