[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