• Hyungwoo Yang's avatar
    HID: intel-ish-hid: fix wrong driver_data usage · b12bbdc5
    Hyungwoo Yang authored
    Currently, in suspend() and resume(), ishtp client drivers are using
    driver_data to get "struct ishtp_cl_device" object which is set by
    bus driver. It's wrong since the driver_data should not be owned bus.
    driver_data should be owned by the corresponding ishtp client driver.
    Due to this, some ishtp client driver like cros_ec_ishtp which uses
    its driver_data to transfer its data to its child doesn't work correctly.
    
    So this patch removes setting driver_data in bus drier and instead of
    using driver_data to get "struct ishtp_cl_device", since "struct device"
    is embedded in "struct ishtp_cl_device", we introduce a helper function
    that returns "struct ishtp_cl_device" from "struct device".
    Signed-off-by: default avatarHyungwoo Yang <hyungwoo.yang@intel.com>
    Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    b12bbdc5
ishtp-hid-client.c 26.4 KB