[sane-devel] HP Scanjet 2400c for genesys

Parag N(पराग़) panemade at gmail.com
Thu Jul 6 12:26:00 UTC 2006


Hi,
On 7/6/06, Stéphane VOLTZ <stefdev at modulonet.fr> wrote:
> Le mardi 4 juillet 2006 11:51, Thomas Mader a écrit:
> > Hello,
> >
> > I have a HP Scanjet 2400c and would like to know if I can help somehow to
> > speed up the development of the driver for this?
> > Can I provide some information about it or something else?
> >
>
>         Hello,
>
>         this topic has come a few time on the list. The way I see 2400 support added
> is to record usb activity under windows, decode it. Then modify the genesys
> backend accordingly. Test the changes, and compare debug output until it is
> close enough to windows behaviour.
>
>         However, I think there is a 'roadmap': take the functions one after the other
> in the sequence they are used by the  backend. For instance, it make no sense
> to directly jump to the final scan and trying to hack it, since it relies on
> values detected by previous functions.
>
>         Here's the call graph for a preview:
>
> sane_open
>         gl646_init
>                 gl646_init_regs
>                 sanei_genesys_create_slope_table
>                 sanei_genesys_create_gamma_table
>                 gl646_set_fe
>                 gl646_slow_back_home
>                 gl646_send_gamma_table
>                 gl646_set_powersaving
>
> sane_start
>         gl646_save_power
>         gl646_set_fe
>
>         gl646_search_start_position
>                 gl646_setup_sensor
>                 sanei_genesys_exposure_time
>                 gl646_setup_steps
>                 sanei_genesys_create_slope_table
>                 gl646_send_slope_table
>                 gl646_set_fe
>                 gl646_begin_scan
>                 sanei_genesys_read_data_from_scanner
>                          this function generates a searh_position16.pnm and search_position.pnm
>                         which are pictures of the innings of the scanner. These should contain
>                         black and white areas that will be basis for postion detection.
>                 gl646_end_scan
>                 sanei_genesys_search_reference_point
>
>         ... more to come ...
>
>         I'm currently compelting this, but I think making gl646_search_start_position
> working will take enough time to let me finish.
>
>
>                 Some on these functions already test for HP2300. You can add tests and
> values for 2400 there. However, there are two points to take into account:
>         - for the HP2300 I made the analog frontend work like the MD5345 one since
>                 I couldn't make it work like it is in usb logs.
>         -  motor slope creation should favor sanei_genesys_create_slope_table3() over
>                 the sanei_genesys_create_slope_table() currently used.
>
>         I append the latest version of the scripts that I use for log decoding.  The
> cmd.sh takes a decoded log and emits scanner status at each motor start
> (which is used as a 'commit'). It is usefull since you can take it's output
> to compare scanner internal state with the one from the backend log (output
> of gl646_bulk_write_register() ) right before gl646_begin_scan().
>
>         Don't hesitate to ask for more or send patches ...
>
> Regards,
>         Stef
 From my side Function call trace for gl646_init(). Its not recursive trace.
=======================================================================
 gl646_init
    sanei_genesys_get_status
    gl646_init_regs
   sanei_genesys_create_slope_table
   sanei_genesys_create_gamma_table
   sanei_usb_control_msg
   sanei_genesys_write_register
  gl646_bulk_write_register
  gl646_asic_test
  gl646_set_fe
  gl646_bulk_read_data
  gl646_slow_back_home
  sanei_genesys_init_shading_data
  gl646_repark_head
  gl646_send_gamma_table
  gl646_set_powersaving
=====================================================================
 I will submit more call trace by tomorrow.
Regards,
Parag.



More information about the sane-devel mailing list