kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Simplify get_gain4_bit() implementation
rodzic
3ada79c35a
commit
7385e0d305
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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);
|
||||
|
|
Ładowanie…
Reference in New Issue