data[1] = -ctrl->val & 0xff;
                }
                break;
+       case V4L2_CID_SHARPNESS:
+               index = USBTV_BASE + 0x0239;
+               data[0] = 0;
+               data[1] = ctrl->val;
+               size = 2;
+               break;
        default:
                kfree(data);
                return -EINVAL;
                        V4L2_CID_SATURATION, 0, 0x3ff, 1, 0x200);
        v4l2_ctrl_new_std(&usbtv->ctrl, &usbtv_ctrl_ops,
                        V4L2_CID_HUE, -0xdff, 0xdff, 1, 0x000);
+       v4l2_ctrl_new_std(&usbtv->ctrl, &usbtv_ctrl_ops,
+                       V4L2_CID_SHARPNESS, 0x0, 0xff, 1, 0x60);
        ret = usbtv->ctrl.error;
        if (ret < 0) {
                dev_warn(usbtv->dev, "Could not initialize controls\n");