dev_master
return picdev_write(container_of(dev, struct kvm_pic, dev_master),
return picdev_read(container_of(dev, struct kvm_pic, dev_master),
kvm_iodevice_init(&s->dev_master, &picdev_master_ops);
&s->dev_master);
kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, &s->dev_master);
kvm_io_bus_unregister_dev(vpic->kvm, KVM_PIO_BUS, &vpic->dev_master);
struct kvm_io_device dev_master;
enum dev_master master, enum dev_state *state);
enum dev_master master, enum dev_state *state)
static int w1_poll_completion(struct w1_master *dev_master, int tout_ms)
if (w1_read_8(dev_master) == 0xFF)
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_next_pullup(dev_master, t_conv);
w1_write_8(dev_master, W1_CONVERT_TEMP);
ret = w1_poll_completion(dev_master, W1_POLL_CONVERT_TEMP);
mutex_unlock(&dev_master->bus_mutex);
mutex_unlock(&dev_master->bus_mutex);
mutex_unlock(&dev_master->bus_mutex);
mutex_unlock(&dev_master->bus_mutex);
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_write_8(dev_master, W1_CONVERT_TEMP);
ret = w1_poll_completion(dev_master, W1_POLL_CONVERT_TEMP);
mutex_unlock(&dev_master->bus_mutex);
mutex_unlock(&dev_master->bus_mutex);
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_write_8(dev_master, W1_READ_SCRATCHPAD);
nb_bytes_read = w1_read_block(dev_master, info->rom, 9);
mutex_unlock(&dev_master->bus_mutex);
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_write_8(dev_master, W1_WRITE_SCRATCHPAD);
w1_write_block(dev_master, data, nb_bytes);
mutex_unlock(&dev_master->bus_mutex);
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_next_pullup(dev_master, t_write);
w1_write_8(dev_master, W1_COPY_SCRATCHPAD);
mutex_unlock(&dev_master->bus_mutex);
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_write_8(dev_master, W1_RECALL_EEPROM);
ret = w1_poll_completion(dev_master, W1_POLL_RECALL_EEPROM);
mutex_unlock(&dev_master->bus_mutex);
struct w1_master *dev_master = sl->master;
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
w1_write_8(dev_master, W1_READ_PSUPPLY);
ret = w1_touch_bit(dev_master, 1);
mutex_unlock(&dev_master->bus_mutex);
static int trigger_bulk_read(struct w1_master *dev_master)
list_for_each_entry(sl, &dev_master->slist, w1_slave_entry) {
if (!bus_mutex_lock(&dev_master->bus_mutex)) {
if (!w1_reset_bus(dev_master)) { /* Just reset the bus */
w1_write_8(dev_master, W1_SKIP_ROM);
w1_next_pullup(dev_master, t_conv);
w1_write_8(dev_master, W1_CONVERT_TEMP);
&dev_master->slist, w1_slave_entry) {
mutex_unlock(&dev_master->bus_mutex);
mutex_unlock(&dev_master->bus_mutex);
mutex_unlock(&dev_master->bus_mutex);
list_for_each_entry(sl, &dev_master->slist, w1_slave_entry) {
struct w1_master *dev_master = dev_to_w1_master(device);
ret = trigger_bulk_read(dev_master);
struct w1_master *dev_master = dev_to_w1_master(device);
list_for_each_entry(sl, &dev_master->slist, w1_slave_entry) {
static int trigger_bulk_read(struct w1_master *dev_master);