So you’re wanting to keep the hard edge at the top? When you add a subsurf, you need to add either crease or an extra loop cut to help hold the form. Using the rule of three, with the extra loops, you want an extra loop on either side close to the the main “corner” loop that you want to sharpen. So you’ll want one just before corner and one just after the corner. The closer the “holding” loop is to the corner loop, the sharper the angle will be. With creases, it’s a similar idea. The closer to 1, the sharper the angle. Personally, I like the extra geometry route.
Now, with your model here, if you do that, you might wind up with more of an “oval” opening. That’s fine, if that’s what you want. But if not, you may have to refill the faces, add in the extra loops, then remove the faces.
Hope that helps some!