Lines Matching defs:msb

182 	struct mspro_block_data *msb = disk->private_data;
189 kfree(msb);
195 struct mspro_block_data *msb = bdev->bd_disk->private_data;
197 geo->heads = msb->heads;
198 geo->sectors = msb->sectors_per_track;
199 geo->cylinders = msb->cylinders;
452 struct mspro_block_data *msb = memstick_get_drvdata(card);
455 card->next_request = msb->mrq_handler;
474 struct mspro_block_data *msb = memstick_get_drvdata(card);
479 msb->read_only = 1;
481 msb->read_only = 0;
505 struct mspro_block_data *msb = memstick_get_drvdata(card);
515 memstick_init_req(*mrq, MS_TPC_SET_CMD, &msb->transfer_cmd, 1);
521 if (msb->caps & MEMSTICK_CAP_AUTO_GET_INT)
534 if (msb->current_page
535 == (msb->req_sg[msb->current_seg].length
536 / msb->page_size)) {
537 msb->current_page = 0;
538 msb->current_seg++;
540 if (msb->current_seg == msb->seg_count) {
559 t_offset = msb->req_sg[msb->current_seg].offset;
560 t_offset += msb->current_page * msb->page_size;
563 nth_page(sg_page(&(msb->req_sg[msb->current_seg])),
565 msb->page_size, offset_in_page(t_offset));
567 memstick_init_req_sg(*mrq, msb->data_dir == READ
575 msb->current_page++;
576 if (msb->caps & MEMSTICK_CAP_AUTO_GET_INT) {
601 struct mspro_block_data *msb = memstick_get_drvdata(card);
603 .system = msb->system,
604 .data_count = cpu_to_be16((uint16_t)(length / msb->page_size)),
610 do_div(offset, msb->page_size);
614 msb->mrq_handler = h_mspro_block_transfer_data;
623 struct mspro_block_data *msb = memstick_get_drvdata(card);
628 msb->current_page = 0;
629 msb->current_seg = 0;
630 msb->seg_count = blk_rq_map_sg(msb->block_req->q,
631 msb->block_req,
632 msb->req_sg);
634 if (!msb->seg_count) {
635 unsigned int bytes = blk_rq_cur_bytes(msb->block_req);
638 chunk = blk_update_request(msb->block_req,
643 __blk_mq_end_request(msb->block_req,
645 msb->block_req = NULL;
649 t_off = blk_rq_pos(msb->block_req);
651 count = blk_rq_bytes(msb->block_req);
653 msb->setup_transfer(card, t_off, count);
655 msb->data_dir = rq_data_dir(msb->block_req);
656 msb->transfer_cmd = msb->data_dir == READ
667 struct mspro_block_data *msb = memstick_get_drvdata(card);
673 spin_lock_irqsave(&msb->q_lock, flags);
674 dev_dbg(&card->dev, "complete %d, %d\n", msb->block_req ? 1 : 0,
677 if (msb->block_req) {
683 if (msb->data_dir == READ) {
684 for (cnt = 0; cnt < msb->current_seg; cnt++) {
685 t_len += msb->req_sg[cnt].length
686 / msb->page_size;
688 if (msb->current_page)
689 t_len += msb->current_page - 1;
691 t_len *= msb->page_size;
695 t_len = blk_rq_bytes(msb->block_req);
700 t_len = blk_rq_cur_bytes(msb->block_req);
702 chunk = blk_update_request(msb->block_req,
709 __blk_mq_end_request(msb->block_req,
711 msb->block_req = NULL;
721 spin_unlock_irqrestore(&msb->q_lock, flags);
727 struct mspro_block_data *msb = memstick_get_drvdata(card);
732 spin_lock_irqsave(&msb->q_lock, flags);
733 if (!msb->block_req) {
734 blk_mq_stop_hw_queues(msb->queue);
737 spin_unlock_irqrestore(&msb->q_lock, flags);
748 struct mspro_block_data *msb = memstick_get_drvdata(card);
750 blk_mq_start_hw_queues(msb->queue);
757 struct mspro_block_data *msb = memstick_get_drvdata(card);
759 spin_lock_irq(&msb->q_lock);
761 if (msb->block_req) {
762 spin_unlock_irq(&msb->q_lock);
766 if (msb->eject) {
767 spin_unlock_irq(&msb->q_lock);
772 msb->block_req = bd->rq;
776 msb->block_req = NULL;
778 spin_unlock_irq(&msb->q_lock);
786 struct mspro_block_data *msb = memstick_get_drvdata(card);
789 msb->mrq_handler = h_mspro_block_wait_for_ced;
800 struct mspro_block_data *msb = memstick_get_drvdata(card);
809 msb->mrq_handler = h_mspro_block_default;
820 struct mspro_block_data *msb = memstick_get_drvdata(card);
824 if (msb->caps & MEMSTICK_CAP_PAR4)
836 msb->system = MEMSTICK_SYS_PAR4;
841 if (msb->caps & MEMSTICK_CAP_PAR8) {
845 msb->system = MEMSTICK_SYS_PAR8;
858 msb->mrq_handler = h_mspro_block_default;
868 msb->system = MEMSTICK_SYS_SERIAL;
876 rc = mspro_block_set_interface(card, msb->system);
884 if (msb->caps & MEMSTICK_CAP_PAR8) {
885 msb->caps &= ~MEMSTICK_CAP_PAR8;
899 struct mspro_block_data *msb = memstick_get_drvdata(card);
909 unsigned int addr, attr_offset = 0, attr_len = msb->page_size;
911 attr = kmalloc(msb->page_size, GFP_KERNEL);
915 sg_init_one(&msb->req_sg[0], attr, msb->page_size);
916 msb->seg_count = 1;
917 msb->current_seg = 0;
918 msb->current_page = 0;
919 msb->data_dir = READ;
920 msb->transfer_cmd = MSPRO_CMD_READ_ATRB;
922 msb->setup_transfer(card, attr_offset, attr_len);
945 msb->attr_group.attrs = kcalloc(attr_count + 1,
946 sizeof(*msb->attr_group.attrs),
948 if (!msb->attr_group.attrs) {
952 msb->attr_group.name = "media_attributes";
967 msb->attr_group.attrs[cnt] = &s_attr->dev_attr.attr;
995 if (((addr / msb->page_size) == (attr_offset / msb->page_size))
996 && (((addr + s_attr->size - 1) / msb->page_size)
997 == (attr_offset / msb->page_size))) {
998 memcpy(s_attr->data, buffer + addr % msb->page_size,
1003 attr_offset = (addr / msb->page_size) * msb->page_size;
1007 attr_len = (((addr + s_attr->size) / msb->page_size)
1008 + 1 ) * msb->page_size - attr_offset;
1016 sg_init_one(&msb->req_sg[0], buffer, attr_len);
1017 msb->seg_count = 1;
1018 msb->current_seg = 0;
1019 msb->current_page = 0;
1020 msb->data_dir = READ;
1021 msb->transfer_cmd = MSPRO_CMD_READ_ATRB;
1026 msb->setup_transfer(card, attr_offset, attr_len);
1034 memcpy(s_attr->data, buffer + addr % msb->page_size,
1048 struct mspro_block_data *msb = memstick_get_drvdata(card);
1052 msb->system = MEMSTICK_SYS_SERIAL;
1053 msb->setup_transfer = h_mspro_block_setup_cmd;
1063 msb->caps = host->caps;
1075 if (msb->system != MEMSTICK_SYS_SERIAL)
1076 msb->caps |= MEMSTICK_CAP_AUTO_GET_INT;
1079 msb->mrq_handler = h_mspro_block_get_ro;
1087 dev_dbg(&card->dev, "card r/w status %d\n", msb->read_only ? 0 : 1);
1089 msb->page_size = 512;
1105 struct mspro_block_data *msb = memstick_get_drvdata(card);
1107 .logical_block_size = msb->page_size,
1110 .max_segment_size = MSPRO_BLOCK_MAX_PAGES * msb->page_size,
1118 for (rc = 0; msb->attr_group.attrs[rc]; ++rc) {
1119 s_attr = mspro_from_sysfs_attr(msb->attr_group.attrs[rc]);
1130 msb->cylinders = be16_to_cpu(dev_info->cylinders);
1131 msb->heads = be16_to_cpu(dev_info->heads);
1132 msb->sectors_per_track = be16_to_cpu(dev_info->sectors_per_track);
1134 msb->page_size = be16_to_cpu(sys_info->unit_size);
1142 rc = blk_mq_alloc_sq_tag_set(&msb->tag_set, &mspro_mq_ops, 2,
1147 msb->disk = blk_mq_alloc_disk(&msb->tag_set, &lim, card);
1148 if (IS_ERR(msb->disk)) {
1149 rc = PTR_ERR(msb->disk);
1152 msb->queue = msb->disk->queue;
1154 msb->disk->major = major;
1155 msb->disk->first_minor = disk_id << MSPRO_BLOCK_PART_SHIFT;
1156 msb->disk->minors = 1 << MSPRO_BLOCK_PART_SHIFT;
1157 msb->disk->fops = &ms_block_bdops;
1158 msb->disk->private_data = msb;
1160 sprintf(msb->disk->disk_name, "mspblk%d", disk_id);
1164 capacity *= msb->page_size >> 9;
1165 set_capacity(msb->disk, capacity);
1168 if (msb->read_only)
1169 set_disk_ro(msb->disk, true);
1171 rc = device_add_disk(&card->dev, msb->disk, NULL);
1174 msb->active = 1;
1178 put_disk(msb->disk);
1180 blk_mq_free_tag_set(&msb->tag_set);
1188 static void mspro_block_data_clear(struct mspro_block_data *msb)
1193 if (msb->attr_group.attrs) {
1194 for (cnt = 0; msb->attr_group.attrs[cnt]; ++cnt) {
1195 s_attr = mspro_from_sysfs_attr(msb->attr_group
1200 kfree(msb->attr_group.attrs);
1203 msb->card = NULL;
1208 struct mspro_block_data *msb = memstick_get_drvdata(card);
1210 return (msb->active == 1);
1215 struct mspro_block_data *msb;
1218 msb = kzalloc(sizeof(struct mspro_block_data), GFP_KERNEL);
1219 if (!msb)
1221 memstick_set_drvdata(card, msb);
1222 msb->card = card;
1223 spin_lock_init(&msb->q_lock);
1230 rc = sysfs_create_group(&card->dev.kobj, &msb->attr_group);
1242 sysfs_remove_group(&card->dev.kobj, &msb->attr_group);
1245 mspro_block_data_clear(msb);
1246 kfree(msb);
1252 struct mspro_block_data *msb = memstick_get_drvdata(card);
1255 spin_lock_irqsave(&msb->q_lock, flags);
1256 msb->eject = 1;
1257 spin_unlock_irqrestore(&msb->q_lock, flags);
1258 blk_mq_start_hw_queues(msb->queue);
1260 del_gendisk(msb->disk);
1263 blk_mq_free_tag_set(&msb->tag_set);
1264 msb->queue = NULL;
1266 sysfs_remove_group(&card->dev.kobj, &msb->attr_group);
1269 mspro_block_data_clear(msb);
1272 put_disk(msb->disk);
1280 struct mspro_block_data *msb = memstick_get_drvdata(card);
1283 blk_mq_stop_hw_queues(msb->queue);
1285 spin_lock_irqsave(&msb->q_lock, flags);
1286 msb->active = 0;
1287 spin_unlock_irqrestore(&msb->q_lock, flags);
1294 struct mspro_block_data *msb = memstick_get_drvdata(card);
1318 && msb->attr_group.attrs[cnt]; ++cnt) {
1320 r_attr = mspro_from_sysfs_attr(msb->attr_group.attrs[cnt]);
1327 msb->active = 1;
1333 memstick_set_drvdata(card, msb);
1341 blk_mq_start_hw_queues(msb->queue);