Print this page
XXXX introduce drv_sectohz


 149          */
 150         (void) ddi_hold_driver(ddi_name_to_major("mc-us3"));
 151         (void) ddi_hold_driver(ddi_name_to_major("ssc050"));
 152 
 153         /* Gain access into the ssc050_get_port function */
 154         daktari_ssc050_get_port_bit = (int (*) (dev_info_t *, int, int,
 155             uint8_t *, int)) modgetsymvalue("ssc050_get_port_bit", 0);
 156         if (daktari_ssc050_get_port_bit == NULL) {
 157                 cmn_err(CE_WARN, "cannot find ssc050_get_port_bit");
 158                 return;
 159         }
 160 
 161         ddi_walk_devs(ddi_root_node(), daktari_dev_search, (void *)&keysw_dip);
 162         ASSERT(keysw_dip != NULL);
 163 
 164         /*
 165          * prevent detach of i2c-ssc050
 166          */
 167         e_ddi_hold_devi(keysw_dip);
 168 
 169         keypoll_timeout_hz = drv_usectohz(10 * MICROSEC);
 170         keyswitch_poll(keysw_dip);
 171         abort_seq_handler = daktari_abort_seq_handler;
 172 }
 173 
 174 static int
 175 daktari_dev_search(dev_info_t *dip, void *arg)
 176 {
 177         char            *compatible = NULL; /* Search tree for "i2c-ssc050" */
 178         int             *dev_regs; /* Info about where the device is. */
 179         uint_t          len;
 180         int             err;
 181 
 182         if (ddi_prop_lookup_string(DDI_DEV_T_ANY, dip, DDI_PROP_DONTPASS,
 183             "compatible", &compatible) != DDI_PROP_SUCCESS)
 184                 return (DDI_WALK_CONTINUE);
 185 
 186         if (strcmp(compatible, "i2c-ssc050") == 0) {
 187                 ddi_prop_free(compatible);
 188 
 189                 err = ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dip,




 149          */
 150         (void) ddi_hold_driver(ddi_name_to_major("mc-us3"));
 151         (void) ddi_hold_driver(ddi_name_to_major("ssc050"));
 152 
 153         /* Gain access into the ssc050_get_port function */
 154         daktari_ssc050_get_port_bit = (int (*) (dev_info_t *, int, int,
 155             uint8_t *, int)) modgetsymvalue("ssc050_get_port_bit", 0);
 156         if (daktari_ssc050_get_port_bit == NULL) {
 157                 cmn_err(CE_WARN, "cannot find ssc050_get_port_bit");
 158                 return;
 159         }
 160 
 161         ddi_walk_devs(ddi_root_node(), daktari_dev_search, (void *)&keysw_dip);
 162         ASSERT(keysw_dip != NULL);
 163 
 164         /*
 165          * prevent detach of i2c-ssc050
 166          */
 167         e_ddi_hold_devi(keysw_dip);
 168 
 169         keypoll_timeout_hz = drv_sectohz(10);
 170         keyswitch_poll(keysw_dip);
 171         abort_seq_handler = daktari_abort_seq_handler;
 172 }
 173 
 174 static int
 175 daktari_dev_search(dev_info_t *dip, void *arg)
 176 {
 177         char            *compatible = NULL; /* Search tree for "i2c-ssc050" */
 178         int             *dev_regs; /* Info about where the device is. */
 179         uint_t          len;
 180         int             err;
 181 
 182         if (ddi_prop_lookup_string(DDI_DEV_T_ANY, dip, DDI_PROP_DONTPASS,
 183             "compatible", &compatible) != DDI_PROP_SUCCESS)
 184                 return (DDI_WALK_CONTINUE);
 185 
 186         if (strcmp(compatible, "i2c-ssc050") == 0) {
 187                 ddi_prop_free(compatible);
 188 
 189                 err = ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dip,